如何将UTC时间转换为Unix时间戳

如何将UTC时间转换为Unix时间戳

问题描述:

我正在寻找将UTC时间字符串转换为unix时间戳的选项.

I am looking for an option to convert UTC time string to unix timestamp.

我拥有的字符串变量是02/28/2016 10:03:46 PM,需要将其转换为像1456693426

The string variable I have is 02/28/2016 10:03:46 PM and it needs to be converted to a unix timestamp like 1456693426

有什么想法吗?

首先,unix时间戳记1456693426在UTC中没有时间10:03:46 PM,但是具有9:03:46 PM.

First of, the unix timestamp 1456693426 does not have the time 10:03:46 PM but 9:03:46 PM in UTC.

time程序包中,有一个函数解析,希望该布局能够解析时间.布局是从参考时间Mon Jan 2 15:04:05 -0700 MST 2006构建的.因此,在您的情况下,布局将为01/02/2006 3:04:05 PM.使用解析后,您将获得一个time.Time结构,可以在其上调用

In the time package there is the function Parse with expects a layout to parse the time. The layout is constructed from the reference time Mon Jan 2 15:04:05 -0700 MST 2006. So in your case the layout would be 01/02/2006 3:04:05 PM. After using Parse you get a time.Time struct on which you can call Unix to receive the unix timestamp.

package main

import (
    "fmt"
    "time"
)

func main() {
    layout := "01/02/2006 3:04:05 PM"
    t, err := time.Parse(layout, "02/28/2016 9:03:46 PM")
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(t.Unix())
}