我正在执行以下代码来解析时间

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的同一时间,因此应得出预期的结果
2018-08-23 7:10:31.692 +0000 UTC

谁能说出这里的问题。

最佳答案

这是因为您的格式字符串不正确。时区指示必须为-0700(不是+0700)。 time.Parse() :

通过该更改,它可以工作:

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>

关于go - Golang时间解析问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51984910/

10-13 09:24