China Standard Time (CST)
Die answer by Alfredo ist richtig, aber für eine Annahme. Diese Antwort erwähnt Central Standard Time, aber diese Zone ist hinter UTC (7 oder 6 Stunden), während die Daten in der Frage voraus von UTC ist. Also nehme ich an CST
hier bezieht sich auf China Standard Time, die 8 vor UTC ist.
Diese Verwirrung zeigt, warum sollten wir nie diese 3-4 Buchstaben-Abkürzungen wie CST
verwenden. Sie sind keine echten Zeitzonen, nicht standardisiert und nicht einmal einzigartig (wie wir hier sehen). Verwenden Sie stattdessen proper tz/IANA time zones in Form von continent/region
.
java.time
Das Problem ist die Verwendung der alten Datum Zeitklassen. Diese schlecht entworfenen und notorisch lästigen Klassen wurden in Java 8 und später durch das java.time-Framework ersetzt.
Diese Zeichenfolge sollte direkt von Instant
analysiert werden, um einen Wert in UTC zu erhalten.
Instant instant = Instant.parse("2016-04-20T13:58:35.805Z");
Anruf toString
die gleiche Art von String zurück, formatiert entsprechend dem ISO 8601 Standard.
eine Zeitzone Wenden Sie den gleichen Moment durch die Linse eines bestimmten Ortes der wall-clock time zu sehen. Wenden Sie eine ZoneId
an, um ein Objekt ZonedDateTime
zu erhalten.
Für das Beispiel America/Montreal
ist die Wanduhrzeit vier Stunden hinter UTC, also ist die Stunde 09
statt 13
.
ZoneId zoneId = ZoneId.of("America/Montreal");
ZonedDateTime zdt = instant.atZone(zoneId);
2016-04-20T09: 58: 35,805 bis 04: 00 [America/Montreal]
Sowohl die Instant
und die ZonedDateTime
stellen den gleichen gleichzeitigen Punkt auf der Zeitachse.
Da Sie auf beiden Computern unterschiedliche Zeitzonen haben (Computer, auf dem Solr und lokaler Computer installiert sind), verwendet Ihr lokaler Computer CST als Standardzeitzone. Können Sie die Standardzeitzone auf Solr-Computer überprüfen? – NAIT