Tôi tạo ra hai đối tượng ZonedDateTime và tôi nghĩ rằng họ cần được bình đẳng:java 8 - ZonedDateTime không bằng một ZonedDateTime
public static void main(String[] args) {
ZoneId zid = ZoneId.of("America/New_York");
ZoneOffset offset = ZoneOffset.from(LocalDateTime.now().atZone(zid));
ZonedDateTime zdt0 = ZonedDateTime.of(2014, 8, 24, 21, 10, 1, 777000002, offset);
ZonedDateTime zdt1 = ZonedDateTime.of(2014, 8, 24, 21, 10, 1, 777000002, zid);
boolean equals = Objects.equals(zdt0, zdt1);
System.out.println("equals: " + equals);
}
Trong debugger Tôi thấy rằng lớp của thành viên của ZonedDateTime khu trong trường hợp đầu tiên là java.time.ZoneOffset và trong java.time.ZoneRegion thứ hai và điều này làm cho các đối tượng ZonedDateTime không bằng nhau. Điều này gây nhầm lẫn ... Bất kỳ ý tưởng nào?
Cảm ơn bạn! Điều này là hữu ích và bạn đúng: isEqual không phải là rất trực quan ... –