我在夏令时开始和结束时得到了不同的结果。
ZoneId zone = ZoneId.of("Australia/Melbourne");
System.out.println(ZonedDateTime.of(2019, 04, 07, 3, 0, 0, 0, zone)); // statement-1
System.out.println(ZonedDateTime.of(2019, 10, 06, 2, 0, 0, 0, zone)); // statement-2
2019年夏令时的前半段,我的结果是(2019-04-07T03:00+10:00[澳大利亚/墨尔本])。Java减少1小时偏移量,但是在夏令时的后半段(statement-2=> 2019-10-06T03:00+11:00[澳大利亚/墨尔本])中,Java会将时间增加1小时,并将偏移值加1。据我所知,Java应该在夏令时开始时从时间和偏移值中减去1小时,并在夏令时结束时将其增加1小时和1小时偏移值。请帮我澄清这些差异。这是Java 8的问题还是我的理解有误?