MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Richtiges Einfügen von DateTime von c# in mongodb

Ich glaube, Sie werden durch Zeitzonen verwirrt. Das Z am Ende der Zeichenfolge zeigt an, dass es sich um UTC handelt. Als Sie diese Frage gepostet haben, war es kurz nach 15:30 UTC.

Ich vermute stark, dass der richtige Zeitpunkt aufgezeichnet wird - aber es wird als ein Zeitpunkt ohne Bezug auf eine bestimmte Zeitzone aufgezeichnet. Sie können dann konvertieren das zu jeder Zeitzone, die Sie später möchten, aber das Aufzeichnen der UTC-Zeit ist fast immer der richtige Ansatz.

Nebenbei können Sie dies deutlicher machen, indem Sie UtcNow verwenden beginnen mit. Auf diese Weise ist es offensichtlicher, dass Sie nicht versuchen, eine "lokale" Zeit zu erhalten.

Wenn man sich die MongoDB-Dokumentation ansieht, scheint es, dass die interne Darstellung einfach eine Anzahl von Millisekunden seit der Unix-Epoche ist - also auch hier keine Angabe der Zeitzone oder eines Offsets zwischen UTC und Ortszeit. Wenn Sie einen Wert speichern möchten, der in die Ortszeit zurückgerechnet werden kann, die Sie bei der Aufzeichnung gesehen haben (selbst wenn Sie jetzt in einer anderen Zeitzone) sollten Sie eine Zeitzonen-ID und/oder den UTC-Offset als separaten Wert hinterlegen. Das wird nicht allzu oft benötigt, ist aber eine Option.