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' Wfunc makeTimestamp() int64 { return time.Now().UnixNano() / int64(time.Millisecond)}
# q* }% v: D4 F U- m; a 这是一个例子,您可以编译和操作来查看输出
. X- N' u! X# T6 e. [$ epackage 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 |
|
|
|
|
|