回答

收藏

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

技术问答 技术问答 328 人阅读 | 0 人回复 | 2023-09-12

如何以毫秒为单位 Go 中获得 Unix 时间?+ N# f& v0 @: _% o9 W9 r5 y% P
我有以下功能:: R- R' x4 y( w7 h. u
    func makeTimestamp() int64 {    return time.Now().UnixNano() % 1e6 / 1e3}
    ! o% w2 X& _, ^3 l1 p: r. Z
我需要更低的精度,只需要毫秒。
% |- a6 y# k' P8 @' F9 n6 e                                                                # ]4 E8 W1 J- z/ u! q" @
    解决方案:                                                               
+ S& _' p9 f* c                                                                从 go v1.17 开始,该time添加了软件包UnixMicro()and UnixMilli()所以正确的答案是:time.Now().UnixMilli()
" [5 I, Z. O$ J! B4 A+ \原答案:把它分开:
: W# b0 Q. T5 v  Q' W
    func makeTimestamp() int64 {    return time.Now().UnixNano() / int64(time.Millisecond)}
    # q* }% v: D4 F  U- m; a
这是一个例子,您可以编译和操作来查看输出
. X- N' u! X# T6 e. [$ e
    package mainimport  "time"    "fmt")func main()      a := makeTimestamp()    fmt.Printf("%d \n",a)}func makeTimestamp() int64 {    return time.Now().UnixNano() / int64(time.Millisecond)}
    / i& ~4 o9 w. m/ N4 s
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则