如何以格式转换时间
2009-01-01T01:02:01.111+02:00
到UTC,以毫秒为单位?
此转换是否已有套餐?我查看了https://golang.org/src/time/format.go,但无法找到相同的格式进行转换。
答案 0 :(得分:6)
使用time.Parse
。
演示:http://play.golang.org/p/ouiDtIVjQI
package main
import (
"fmt"
"time"
)
func main() {
t, e := time.Parse(`2006-01-02T15:04:05.000-07:00`, `2009-01-01T01:02:01.111+02:00`)
if e != nil {
panic(e)
}
fmt.Println(t.UTC().UnixNano() / 1000000)
}
使用格式字符串2006-01-02T15:04:05.000-07:00
作为参考日期。
答案 1 :(得分:0)
格式是非常标准的ISO8601,因此您可以使用time.RFC3339
布局,例如
t, e := time.Parse(time.RFC3339, "2009-01-01T01:02:01.111+02:00")
...并按照thwd的答案继续进行.UnixNano()
。在src/time/format.go中可以找到更多预定义的布局。