date in MongoDB: Beim Einfügen von Date-Objekten in die Mongo-Datenbank wird das Datum 1 Tag früher als es selbst ist

8

Mein Format für Datumszeichenfolgen lautet wie folgt: 2. Januar 2012 Nach der Methode Instant.parse () wird die Instant-Instanz zum Datum des 1. Januar 2012, also 1 Tag früher, warum? Wenn der ursprüngliche Datumsstring der 1. Januar 2012 ist, ist der Instant-Tag das Datum des 31. Dezember 2011.

%Vor%

Ich verwende MongoDB, um diese Daten zu speichern. Ich habe getestet und es zeigt, wenn Formatierung Datum String- & gt; Instant gibt es keinen Fehler. Aber wenn ich dieses Date-Objekt in MongoDB einfüge, wird die Datumszeichenkette in der MongoDB 1 Tag früher., Warum?

In MongoDB:

%Vor%     
quelle

3 Antworten

1
___ answer 11854004 ___
%Vor%

Ausgabe ist

%Vor%

Weiter für:

%Vor%

Ausgabe ist:

%Vor%     
___ qstntxt ___

Mein Format für Datumszeichenfolgen lautet wie folgt: 2. Januar 2012 Nach der Methode Instant.parse () wird die Instant-Instanz zum Datum des 1. Januar 2012, also 1 Tag früher, warum? Wenn der ursprüngliche Datumsstring der 1. Januar 2012 ist, ist der Instant-Tag das Datum des 31. Dezember 2011.

%Vor%

Ich verwende MongoDB, um diese Daten zu speichern. Ich habe getestet und es zeigt, wenn Formatierung Datum String- & gt; Instant gibt es keinen Fehler. Aber wenn ich dieses Date-Objekt in MongoDB einfüge, wird die Datumszeichenkette in der MongoDB 1 Tag früher., Warum?

In MongoDB:

%Vor%     
___ answer38117515 ___

Sie könnten die UTC-Zeitzone überprüfen, im Grunde läuft der Mongo-Server in Abhängigkeit von der UTC-Zeitzone

  

SimpleDateFormat format = new SimpleDateFormat ("TT / MM / JJJJ");       format.setTimeZone (TimeZone.getTimeZone ("UTC"));

    
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123jodatime ___ Joda-Time bietet einen hochwertigen Ersatz für die Java-Klassen Datum und Uhrzeit. Das Design ermöglicht mehrere Kalendersysteme und bietet dennoch eine einfache API. ___ qstnhdr ___ date in MongoDB: Beim Einfügen von Date-Objekten in die Mongo-Datenbank wird das Datum 1 Tag früher als es selbst ist ___ answer11866656 ___

Mongo speichert seine Daten in Millisekunden seit der Unix-Epoche.

Siehe: Ссылка

Sie haben also keine Zeitzone. Wenn Sie jedoch die Konsole verwenden, konvertiert der .js-Parser die UTC-Daten in Ihre aktuellen Systemzeitzoneneinstellungen.

Sie können das testen:

  • Erstellen Sie eine Entität mit einigen Datumsdaten.
  • dann Abfrage über die Konsole. (Verwenden Sie String ())
  • Verlassen Sie dann die Konsole und konfigurieren Sie die Systemzeitzone neu (debian / ubuntu: sudo dpkg-reconfigure tzdata)
  • Geben Sie dann erneut die Konsole ein und fragen Sie Ihre alten Daten ab = & gt; Sie erhalten die gleiche UTC aber unterschiedliche toString () Ausgaben
___ tag123mongodb ___ MongoDB ist eine skalierbare, hochleistungsfähige Open-Source-Dokumenten-orientierte NoSQL-Datenbank. Es unterstützt eine große Anzahl von Sprachen und Anwendungsentwicklungsplattformen. Fragen zur Serververwaltung können unter http://dba.stackexchange.com gestellt werden. ___ tag123instant ___ Im Kontext von UX, Benutzeroberflächen und Programmierung bezieht sich "sofort" auf unmittelbar und automatisch. Sobald ein Trigger aktiviert wird, wird der Artikel so schnell wie möglich aktualisiert. Verwenden Sie dieses Tag nicht für Fragen zur Klasse 'java.time.Instant'. Verwenden Sie stattdessen das java.time.instant-Tag. ___
Ilya 07.08.2012, 20:55
quelle
1

Mongo speichert seine Daten in Millisekunden seit der Unix-Epoche.

Siehe: Ссылка

Sie haben also keine Zeitzone. Wenn Sie jedoch die Konsole verwenden, konvertiert der .js-Parser die UTC-Daten in Ihre aktuellen Systemzeitzoneneinstellungen.

Sie können das testen:

  • Erstellen Sie eine Entität mit einigen Datumsdaten.
  • dann Abfrage über die Konsole. (Verwenden Sie String ())
  • Verlassen Sie dann die Konsole und konfigurieren Sie die Systemzeitzone neu (debian / ubuntu: sudo dpkg-reconfigure tzdata)
  • Geben Sie dann erneut die Konsole ein und fragen Sie Ihre alten Daten ab = & gt; Sie erhalten die gleiche UTC aber unterschiedliche toString () Ausgaben
Marc 08.08.2012 14:24
quelle
0

Sie könnten die UTC-Zeitzone überprüfen, im Grunde läuft der Mongo-Server in Abhängigkeit von der UTC-Zeitzone

  

SimpleDateFormat format = new SimpleDateFormat ("TT / MM / JJJJ");       format.setTimeZone (TimeZone.getTimeZone ("UTC"));

    
Nifras Nipy 30.06.2016 08:15
quelle

Tags und Links