我创建了两个 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);
}
在调试器中,我看到 ZonedDateTime区域的成员类在第一种情况下是java.time.ZoneOffset,在第二种情况下是 java.time.ZoneRegion ,这使得 ZonedDateTime 对象不相等。这令人困惑......有什么想法吗?