Mongodb 这个wierd BSON日期保存是怎么回事?
我目前正在为MongoDB编写一个驱动程序,因此我必须深入挖掘,因此我发现: DateTimeUTC的BSON规范:Mongodb 这个wierd BSON日期保存是怎么回事?,mongodb,bson,Mongodb,Bson,我目前正在为MongoDB编写一个驱动程序,因此我必须深入挖掘,因此我发现: DateTimeUTC的BSON规范: “\x09”e_name int64 int64的BSON规范: “\x12”e_name int64 BSON时间戳规范(虽然我知道它几乎总是在内部使用,但它只是为了显示BSON使用无符号整数): “\x11”e_name uint64 这对我来说似乎有点争议。为什么int64和utc millis甚至是分开的?mongoDB是否使用不同的方法来比较不同的BSON DATETI
“\x09”e_name int64
int64的BSON规范:
“\x12”e_name int64
BSON时间戳规范(虽然我知道它几乎总是在内部使用,但它只是为了显示BSON使用无符号整数):
“\x11”e_name uint64
这对我来说似乎有点争议。为什么int64和utc millis甚至是分开的?mongoDB是否使用不同的方法来比较不同的BSON DATETIMEUTC
为什么dateTimeUTC不是uint64而是有符号整数?毫秒始终大于0。这背后有什么原因吗?我遗漏了什么吗?日期时间UTC用于表示时间点。它早于BSON,历史上一直使用有符号整数。这是为了允许使用DateTimeUTC指向纪元之前的日期。否则,无法使用DateTimeUTC表示1970-01-01之前的日期 相比之下,时间戳主要用于内部使用,并且预期主要用于当前日期,这些日期几乎不需要表示历元之前的时间(例如,操作的时间戳)
UNIX StackExchange中有一个与此相关的问题:也许您也可以回答这个问题?