为了账号安全,请及时绑定邮箱和手机立即绑定

去: time.Parse() 问题

去: time.Parse() 问题

Go
慕妹3242003 2021-10-18 16:20:29
我有以下代码:timeLocal := "01/July/2015:18:12:25 +0900"inFormat := "02/January/2006:15:04:05 -0700"parsed, err := time.Parse(inFormat, timeLocal)if err != nil {    log.Fatal("Time format was not recognized!")}现在,解析工作正常。但是当我运行时:fmt.Println(timeLocal)fmt.Println(inFormat)fmt.Println(parsed)输出是:01/July/2015:18:12:25 +090002/January/2006:15:04:05 -07002015-07-01 18:12:25 +0900 +0900第二个应该在+0900那里吗?我在做什么蠢事?抱歉,这真是漫长的一天,我不知道我错过了什么。哦,整个文件在这里:package mainimport (    "fmt"    "time"    "log")func main() {    timeLocal := "01/July/2015:18:12:25 +0900"    inFormat := "02/January/2006:15:04:05 -0700"    parsed, err := time.Parse(inFormat, timeLocal)    if err != nil {        log.Fatal("Time format was not recognized!")    }    fmt.Println(timeLocal)    fmt.Println(inFormat)    fmt.Println(parsed)}
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

Time.String使用的默认格式是这样的:


2006-01-02 15:04:05.999999999 -0700 MST

注意“MST”部分。由于您没有提供区域的名称,因此格式只是将其“命名”为与偏移量相同的名称,即“+0900”。如果您将其更改为“+0000”,您将看到这确实是一个时区名称:


2015-07-01 18:12:25 +0000 UTC

如果您不希望那样,只需使用单独的格式进行打印:


myFmt := "2006-01-02 15:04:05.999999999 -0700"

fmt.Println(parsed.Format(myFmt))


查看完整回答
反对 回复 2021-10-18
  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信