在Go中,尝试time.Time使用时间包的Parse方法将字符串转换为时,不会返回预期结果。似乎时区有问题。我想将UTC中的日期和时间更改为ISO 8601。
time.Time
package main import ( "fmt" "time" ) func main() { const longForm = "2013-05-13T18:41:34.848Z" //even this is not working //const longForm = "2013-05-13 18:41:34.848 -0700 PDT" t, _ := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT") fmt.Println(t) //outputs 0001-01-01 00:00:00 +0000 UTC }
提前致谢!
time.Parse使用特殊值进行时间格式化,并期望格式与这些值一起传递。
time.Parse
如果您传递正确的值,它将以正确的方式解析时间。
因此,过去的年份为2006年,月份为01年,然后继续这样…
package main import ( "fmt" "time" ) func main() { const longForm = "2006-01-02 15:04:05.000 -0700 PDT" t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT") fmt.Println(t.UTC(), err) //outputs 2013-05-14 01:41:34.848 +0000 UTC <nil> }