2012-09-10 3 views
2

DateUpdated DateTime 속성이있는 모델이 하나 있습니다.MongoDB에서 DateTime을 업데이트하는 것이 잘못된 값을 얻는 이유는 무엇입니까?

내가 그 모델을 업데이트하기 전에, 내 모델 정보의입니다

before changes

난 내 모델 정보의입니다

after changes

왜 MongoDB를 저장 잘못된 DateUpdated 값을 업데이트 한 후

? 나는 디버거로 여러 번 시도해 보았고 값이 바뀌었지만 틀린 DateTime으로 바뀌는 것처럼 보였다.

Im는 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 속성은 UTC에

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

답변

3

MongoDB를 저장 날짜 시간 값입니다. 현재보고있는 것은 현지 시간을 UTC로 변환 한 것입니다.

시간대를 처리하는 가장 좋은 방법은 모든 데이터를 UTC (데이터베이스뿐만 아니라 데이터 모델 포함)로 유지하고 사용자에게 값을 표시하는 시점의 현지 시간으로 변환하는 것입니다.

관련 문제