Насколько я мог исследовать, UTC и Zulu - то же самое. Однако я столкнулся с трудностями, сравнивая два ZonedDateTimes, которые я получаю из разных источников в своем коде. Следующий код иллюстрирует проблему:Java 8 равенство UTC и Zulu время?
@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
}
Проблема:
java.lang.AssertionError: expected:<2015-02-01T14:30Z[UTC]> but was:<2015-02-01T14:30Z>
А что будет правильный путь для создания и сравнения значений на основе UTC тогда?
Согласно W3C Date and Time Formats:
Времена выражены в формате UTC (Universal Time), с особым UTC целеуказателем ("Z").
Другой вариант заключается в преобразовании каждого ZonedDateTime в одно мгновение, как два Мгновения будут равны. – VGR
Да ... если это то, чего вы пытаетесь достичь. –