获取Go语言中的Unix时间戳(自纪元以来的当前时间,以秒为单位)

时间:2012-03-02 19:21:07

标签: unix timestamp go

我有一些用Go编写的代码,我正在尝试更新以使用最新的每周版本。 (它最后是在r60下建造的)。现在一切正常,除了以下几点:

 if t, _, err := os.Time(); err == nil {
   port[5] = int32(t)
 }

有关如何更新此内容以使用当前Go实现的任何建议吗?

4 个答案:

答案 0 :(得分:132)

import "time"
...
port[5] = int32(time.Now().Unix())

答案 1 :(得分:17)

如果您想将其作为string,只需通过strconv转换:

package main

import (
    "fmt"
    "strconv"
    "time"
)

func main() {
    timestamp := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
    fmt.Println(timestamp) // prints: 1436773875771421417
}

答案 2 :(得分:11)

另一个提示。 time.Now().UnixNano() (godoc)自纪元以来会给你纳秒。它不是严格的Unix时间,但它使用相同的纪元为您提供次秒精度,这可以很方便。

编辑:更改为匹配当前的golang api

答案 3 :(得分:0)

基于此处另一个答案的想法,要获得易于理解的解释,可以使用:

package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := time.Unix(time.Now().Unix(), 0)
    fmt.Printf("%v", timestamp) // prints: 2009-11-10 23:00:00 +0000 UTC
}

The Go Playground中尝试。