为什么 MongoDB ObjectId 创建时间与用于创建它的日期时间不同
why is MongoDB ObjectId creationtime is different from the datetime used for its creation
我正在为 mongodb 使用 C# 1.11 驱动程序。我注意到当我使用日期创建 objectId 时,当我使用 CreationTime 属性 获取日期时间时,它是不同的。
谁能解释为什么会这样?
使用日期 10/14/2016 12:00:00 上午
var date = DateTime.ParseExact("20161014000000","yyyyMMddHHmmss", CultureInfo.InvariantCulture);
正在创建 ObjectId
ObjectId oid = new ObjectId(date, 0 , 0 , 0);
oid.CreationTime // returns 10/14/2016 7:00:00 AM
可能是因为 mongo 将其默认 (mongo's docs) 修改为 UTC:
"MongoDB 默认以 UTC 格式存储时间,并将转换为任何本地时间
表示成这种形式。必须运行或报告某些应用程序
未修改的本地时间值可以将时区与 UTC 时间戳一起存储,
并在他们的应用程序逻辑中计算原始本地时间。"
我正在为 mongodb 使用 C# 1.11 驱动程序。我注意到当我使用日期创建 objectId 时,当我使用 CreationTime 属性 获取日期时间时,它是不同的。
谁能解释为什么会这样?
使用日期 10/14/2016 12:00:00 上午
var date = DateTime.ParseExact("20161014000000","yyyyMMddHHmmss", CultureInfo.InvariantCulture);
正在创建 ObjectId
ObjectId oid = new ObjectId(date, 0 , 0 , 0);
oid.CreationTime // returns 10/14/2016 7:00:00 AM
可能是因为 mongo 将其默认 (mongo's docs) 修改为 UTC: "MongoDB 默认以 UTC 格式存储时间,并将转换为任何本地时间 表示成这种形式。必须运行或报告某些应用程序 未修改的本地时间值可以将时区与 UTC 时间戳一起存储, 并在他们的应用程序逻辑中计算原始本地时间。"