我有一些用Go编写的代码,我正在尝试更新以使用最新的每周版本。 (它最后是在r60下建造的)。现在一切正常,除了以下几点:
if t, _, err := os.Time(); err == nil {
port[5] = int32(t)
}
有关如何更新此内容以使用当前Go实现的任何建议吗?
答案 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中尝试。