2

我有一个具有 DateUpdated DateTime 属性的模型。

在我更新该模型之前,我的模型信息是

更改前

在我更新我的模型信息之后

更改后

为什么 MongoDB 存储错误的 DateUpdated 值?我用调试器尝试了几次,看起来每次更改该值但日期时间错误。

我正在使用 C# 驱动程序。

我的更新功能是

var query = Query.EQ("_id", p.UserID);
var update = MongoDB.Driver.Builders.Update.Replace(p);
SafeModeResult success =  MongoRepository.Profiles().Update(query, update);

SafeModeResult 总是成功的。

我的 DateUpdated Bson 属性是

[BsonElement("da")]
[BsonDateTimeOptions(Representation = BsonType.Document)]
public DateTime DateUpdated{ get; set; }
4

1 回答 1

3

MongoDB 以 UTC 存储 DateTime 值。您看到的是本地时间到 UTC 的转换。

处理时区的最佳方法是将所有数据保存在 UTC(包括数据模型中,而不仅仅是数据库中),并且仅在您向用户显示值时转换为本地时间。

于 2012-09-10T19:37:17.247 回答