Код: Выделить всё
MongoDB.Bson.Serialization.Options.DateTimeSerializationOptions options =
MongoDB.Bson.Serialization.Options.DateTimeSerializationOptions.UtcInstance;
var serializer =
new MongoDB.Bson.Serialization.Serializers.DateTimeSerializer(options);
MongoDB.Bson.Serialization.BsonSerializer.RegisterSerializer(
typeof(DateTime),
serializer);
Чтобы объяснить, у меня есть два свойства, которые выглядят следующим образом:
Код: Выделить всё
DateTime WorkItemToCompleteBy{get; set;}
[BsonDateTimeOptions(Kind = DateTimeKind.Unspecified)]
DateTime WorkItemToCompleteByLocal{get; set;}
Я бы хотел, чтобы Mongo сохранил это значение «как есть» и вернул его мне. Проблема в том, что Mongo всегда сохраняет его как ISODate и преобразует значение в версию Utc.
Чтобы объяснить.
Если UTC равно 07:30 часов, а я вычисляю время Брисбена равным 1730 часам и устанавливаю его в WorkitemToCompleteByLocal,
они сохраняются как
Код: Выделить всё
"WorkItemToCompleteBy" : ISODate("2013-06-05T07:30:00Z"),
"WorkItemToCompleteByLocal" : ISODate("2013-06-05T12:00:00Z"),
Подробнее здесь: https://stackoverflow.com/questions/169 ... e-in-mongo
Мобильная версия