golang 2018-06-06T20:14:03.368+0800如何转换成unix时间戳

golang 2018-06-06T20:14:03.368+0800如何转换成unix时间戳
试了好几种方法 简直要哭了

阅读 2.6k
2 个回答

golang 的时间格式确实困扰新人,需要一点适应时间。

这里只需要调用 time.Parse(),然后读取 time.Unix() 结果便可。
时间格式应该是 "2006-01-02T15:04:05.999-0700",请参考下面的示例

package main

import (
    "fmt"
    "testing"
    "time"
)

func TestParseTime(t *testing.T) {
    str := "2018-06-07T20:14:03.368+0800"

    format := "2006-01-02T15:04:05.999-0700"
    tm, err := time.Parse(format, str)
    if err != nil {
        t.Fatal(err)
    }
    _, zoffset := tm.Zone()
    if tm.Year() != 2018 || tm.Month() != 6 || tm.Day() != 7 || tm.Hour() != 20 || tm.Minute() != 14 || tm.Second() != 3 || zoffset != 8*3600 {
        t.Fatal(tm)
    }
    fmt.Println(tm.Unix())
}

试试这个

package main

import (
    "fmt"
    "time"
)

func main() {
    const layout = "2006-01-02T15:04:05.999999999+0800"
    t, err := time.Parse(layout, "2018-06-06T20:14:03.368+0800")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t.Unix())
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题