Theo tôi có thể nghiên cứu, UTC và Zulu giống nhau. Tuy nhiên tôi đang chạy trong khó khăn so sánh hai ZonedDateTimes tôi nhận được từ các nguồn khác nhau trong mã của tôi. Các mã sau minh họa các vấn đề:Java 8 bình đẳng của UTC và Zulu thời gian?
@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
}
Vấn đề:
java.lang.AssertionError: expected:<2015-02-01T14:30Z[UTC]> but was:<2015-02-01T14:30Z>
Và những gì sẽ là cách chính xác để tạo ra và so sánh giá trị dựa UTC sau đó?
Theo W3C Date and Time Formats:
Thời gian được thể hiện bằng UTC (Coordinated Universal Time), với một UTC vấn thiết kế đặc biệt ("Z").
Một tùy chọn khác là chuyển đổi mỗi ZonedDateTime thành Instant, vì hai Instants sẽ bằng nhau. – VGR
Có ... nếu đó là những gì bạn đang cố gắng đạt được. –