Soweit ich recherchieren konnte, sind UTC und Zulu gleich. Allerdings habe ich Schwierigkeiten, zwei von verschiedenen Quellen in meinem Code empfangene "ZonedDateTimes" zu vergleichen. Der folgende Code zeigt das Problem:Java 8 Gleichheit von UTC und Zulu Zeit?
@Test
public void equalsOnTimezone() throws Exception {
ZonedDateTime zdtUtc = ZonedDateTime.of(2015, 2, 1, 14, 30, 0, 0, ZoneId.of("UTC"));
ZonedDateTime zdtZ = ZonedDateTime.of(2015, 2, 1, 14, 30, 0, 0, ZoneId.of("Z"));
assertEquals(zdtUtc, zdtZ); // will fail
}
Das Problem:
java.lang.AssertionError: expected:<2015-02-01T14:30Z[UTC]> but was:<2015-02-01T14:30Z>
Und was ist der richtige Weg sein, zu erstellen und zu UTC läuft Werte vergleichen dann?
Laut W3C Date and Time Formats:
Zeiten in UTC ausgedrückt werden (Coordinated Universal Time), mit einem speziellen UTC Bezeichner ("Z").
Eine weitere Option ist es, jede ZonedDateTime zu einem Instant zu konvertieren, da die beiden Instants gleich sein wird. – VGR
Ja ... wenn Sie das erreichen wollen. –