例子...
func MakeTimestamp() int64 {
return time.Now().UTC().UnixNano() / int64(time.Nanosecond)
}
这将创建类似于 1539222678608597000
我将这些数据存储在 mongodb 上,我最终会使用类似的东西:
db.getCollection('xxxxx').find({ "timestamp":{$lte: 1539194688262205259, $gte: 1539176688262205057} },{"venue": 1},{"product":0})
最佳答案
不,时间戳不是单调的。它们受操作系统和 can skip forward and backward 时钟同步的影响。 .
这就是为什么 Go 1.9 添加了 monotonic part to time.Time .现在,您始终可以可靠地减去使用 time.Now() 获得的两个 time.Time 值,但任何格式都会丢弃单调部分。
因此,时间戳不适用于稳健的时间顺序,但在许多实际情况下,它们“足够好”。考虑到偶尔的错误,您必须自己决定它是否适合您。 (永远不要在笔记本电脑和其他移动设备上运行的软件中使用它们。待机模式会导致各种奇怪的时钟问题,比如时间跳到 future 几个小时。)
关于go - 我可以假设 unix 时间戳将随着 go 增加吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751165/