Tarih saatlerini UTC olarak kaydeden bir Mongo C# uygulamasına sahibim.Utk ve Yerel veri zamanını Mongo'da saklama
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);
Ayrıca, yerel saat dilimini UTC ile birlikte kaydetmem gerekiyor. ben Yerel mülkiyet ve diğer birinde ilgili UTC değerindeki/Amerikan/Avustralya Diğer/Hint kez saklamak istediğinizi
DateTime WorkItemToCompleteBy{get; set;}
[BsonDateTimeOptions(Kind = DateTimeKind.Unspecified)]
DateTime WorkItemToCompleteByLocal{get; set;}
böyle gider iki özelliklere sahip, açıklamak için. Düzinelerce zaman dilimi ile uğraştığım için, UTC'yi istediğiniz zaman dilime dönüştüren ve WorkItemToCompleteByLocal özelliğinde saklayan bir kod var. Mongo'nun bu değeri 'olduğu gibi' saklamasını ve bana geri vermesini istiyorum. Sorun, Mongo'nun her zaman ISODat olarak saklanması ve değeri Utc sürümüne dönüştürmesidir. Açıklamak. UTC 0730 Saat ve ben 1730Hours Brisbane Zaman hesaplamak ve
"WorkItemToCompleteBy" : ISODate("2013-06-05T07:30:00Z"),
"WorkItemToCompleteByLocal" : ISODate("2013-06-05T12:00:00Z"),
Mongo yerel olarak sağlanan zaman yorumladığı
olarak onlar kaydedilmiş olsun, WorkitemToCompleteByLocal için ayarlayın ise sunucu Hindistan'da olmak ve bunu coverts 1200 saat eşdeğer UTC. Değerleri 1730 (IST Albeit) olarak geri alırken Amacımı yener ve Mongo'da herhangi bir yerel zaman bazlı sorgulama yapmamı engeller. Fikirlerin dışındayım. Herhangi bir yardım WorkItemToCompleteByLocal tarihinin 'As-Is' modifikasyonunu
Yeni bir DateTime (Local.Year, Local.Month ......., Kind.Utc) nemlendirerek ve daha sonra kullanarak 'Yerel' saat dilimini UTC olarak yeniden adlandırarak sistemi kandırarak bir iş buldum. bu değer. Şimdi, veriler olduğu gibi saklanıyor ve mantığımın, yerel sütunun türünün ne olduğuna bakmaksızın yerel değeri depoladığını bilmesi (benimsenen çalışma yüzünden UTC olduğunu söylüyor). Daha iyi bir cevap bulana kadar bunu kullanacağım. –
MongoDB'nin JIRA'sına yerel saatlerle ilgili bir öğe ekledim, bu da bu SO girişine işaret eder (bir kayıt gerektirir): https://jira.mongodb.org/browse/DOCS-4086 – akauppi
Bkz. Http: //stackoverflow.com/a/38934986/194717 – Tony