Nehmen wir an, ich möchte Mongo auf der DateTime abfragen. Ich habe zwei C # -Variablen, die das Start- und Enddatum darstellen.
1) {20.10.2011 00:00:00}
2) {22.10.2011 00:00:00}
Nun hat BsonDateTime.Create (dateTime) sie auch in eine BSON DateTime-Quelle transformiert:
1) 2011-10-20T00: 00: 00 MongoDB.Bson.BsonDateTime
2) 2011-10-22T00: 00: 00 MongoDB.Bson.BsonDateTime
Dies ist der Code, der die dateTimes erstellt (_value ist eine Zeichenkette):
%Vor%Dann baut der nächste Code die Abfrage auf:
%Vor%Und ich bekomme einen so seltsamen Wert in einer Abfrage:
%Vor%Nun, ich google ISODate, aber habe keinen Grund gefunden, warum es verschoben werden sollte. Ist es in Ordnung?
Ich glaube, das Problem ist, dass DateTime.TryParse
Ihnen ein DateTime
mit einem Kind
von Local
... gibt, während das ISO-Datum immer in UTC . Ich erwarte, dass ein Teil des MongoDB-Codes das lokale DateTime
in UTC in eins konvertiert. Es ist weitgehend nicht deine Schuld - im Grunde DateTime
ist ein sehr verwirrender Typ .
Ich vermute, wenn Sie DateTimeStyles.AssumeUniversal
in Ihrem Parsing-Code angeben, wird es tun, was Sie erwarten.
(Schamloser Plug: Mein eigenes Projekt, Noda Time , macht das alles viel einfacher ...)
>Tags und Links c# datetime mongodb mongodb-.net-driver