我正在执行下面的代码来解析时间
var time_format = "2006-01-02T15:04:05.000+0700"
var s = "2018-08-23T14:10:31.692+0700"
p, _ := time.Parse(time_format, s)
fmt.Println(p.String())
以上程序的输出如下。
2018-08-23 14:10:31.692 +0000 UTC
我正在解析UTC之前+0700的时间,这是在UTC的同一时间,因此应为expeteted结果
2018-08-23 7:10:31.692 +0000 UTC
任何人都可以在这里说出问题是什么
答案 0 :(得分:5)
这是因为您的格式字符串不正确。时区指示必须为-0700
(而不是+0700
)。 time.Parse()
:
布局通过显示参考时间(定义为)来定义格式
Mon Jan 2 15:04:05 -0700 MST 2006
所做的更改可以起作用:
var format = "2006-01-02T15:04:05.000-0700"
var s = "2018-08-23T14:10:31.692+0700"
p, err := time.Parse(format, s)
fmt.Println(p.String(), err)
这将输出(在Go Playground上尝试):
2018-08-23 14:10:31.692 +0700 +0700 <nil>