一尘不染

Go time.Now().UnixNano() 转换为毫秒?

go

如何以毫秒为单位在 Go 中获得 Unix 时间?

我有以下功能:

func makeTimestamp() int64 {
    return time.Now().UnixNano() % 1e6 / 1e3
}

我需要较低的精度,只需要毫秒。


阅读 604

收藏
2021-11-27

共1个答案

一尘不染

从 go v1.17 开始,该time软件包添加了UnixMicro()and UnixMilli(),因此正确答案是:time.Now().UnixMilli()

原答案:

把它分开:

func makeTimestamp() int64 {
    return time.Now().UnixNano() / int64(time.Millisecond)
}

这是一个示例,您可以编译并运行以查看输出

package main

import (
    "time"
    "fmt"
)

func main() {
    a := makeTimestamp()

    fmt.Printf("%d \n", a)
}

func makeTimestamp() int64 {
    return time.Now().UnixNano() / int64(time.Millisecond)
}
2021-11-27