2012-09-10 33 views
2

我有一個DateUpdated DateTime屬性的模型。爲什麼在MongoDB中更新DateTime會得到錯誤的值?

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

before changes

後更新我的模型信息的是

after changes

爲什麼MongoDB的店錯DateUpdated價值?我用調試器嘗試了幾次,並且看起來每次值改變但DateTime錯誤。

即時通訊使用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; } 

回答

3

MongoDB的存儲DateTime值在UTC。你所看到的是當地時間到UTC的轉換。

處理時區的最佳方法是將所有數據保存爲UTC(包括數據模型中的數據,而不僅僅是數據庫),並且僅在將值顯示給用戶的位置時才轉換爲本地時間。

相關問題