将格式化时间转换为utc毫秒

时间:2015-05-21 11:30:20

标签: go

如何以格式转换时间

2009-01-01T01:02:01.111+02:00

到UTC,以毫秒为单位?

此转换是否已有套餐?我查看了https://golang.org/src/time/format.go,但无法找到相同的格式进行转换。

2 个答案:

答案 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中可以找到更多预定义的布局。