Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以Go语言获取Unix时间戳(当前时间(自纪元起以秒为单位)_Unix_Timestamp_Go - Fatal编程技术网

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

以Go语言获取Unix时间戳(当前时间(自纪元起以秒为单位),unix,timestamp,go,Unix,Timestamp,Go,我有一些代码是用Go编写的,我正在尝试更新这些代码,以便使用最新的每周版本。(它上一次是在r60下建造的)。现在,除以下位外,一切正常: if t, _, err := os.Time(); err == nil { port[5] = int32(t) } 关于如何更新此文件以配合当前的Go实施,有什么建议吗?另一个提示time.Now().UnixNano()将为您提供从新纪元开始的纳秒。这不是严格意义上的Unix时间,但它使用相同的历元可以提供亚秒精度,这非常方便 import

我有一些代码是用Go编写的,我正在尝试更新这些代码,以便使用最新的每周版本。(它上一次是在r60下建造的)。现在,除以下位外,一切正常:

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

关于如何更新此文件以配合当前的Go实施,有什么建议吗?

另一个提示
time.Now().UnixNano()
将为您提供从新纪元开始的纳秒。这不是严格意义上的Unix时间,但它使用相同的历元可以提供亚秒精度,这非常方便

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

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

如果您想将其作为
字符串
只需通过
strconv
转换即可:

package main

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

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

基于这里另一个答案的想法,要获得人类可读的解释,您可以使用:

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
}

试试看。

我知道我在复活一条旧线,但我想知道。。。Python清楚地记录了在不同平台上获取精确时间的问题。请参阅并搜索“精度”。关键是:不是因为你有一个浮点数64,所有的小数都是有意义的。Go的时间是如何实现的,我能相信多少纳秒精度?这在这里不起作用,但时间。现在()。UnixNano()()起作用。这有什么意义?如果有人想把一个数字转换成一个字符串,他可以找到方法。或者我应该补充另一个答案:如果你想把它转换成字节数组,只需执行[]字节(…)?@salvadodali实际上这正是我需要的。如果您愿意,请继续添加您的答案,将其转换为字节数组。我相信最终会有人需要代码。time.Now().UTC().UnixNano()可以替换为time.Now().UnixNano()-文档表示,结果不取决于与t.go1.9.2 darwin/amd64相关的位置,它始终返回:1969-12-31 19:00:00,大致相当于:time.Unix(0,0)。这是没有截断的。