关于夏令时的开始和结束,我得到了不同的结果。
ZoneId zone = ZoneId.of("Australia/Melbourne");
System.out.println(ZonedDateTime.of(2019,04,07,3,zone)); // statement-1
System.out.println(ZonedDateTime.of(2019,10,06,2,zone)); // statement-2
对于2019年上半年的日光节约时间,我得到的结果为(2019-04-07T03:00 ** + 10:00 ** [澳大利亚/墨尔本])。 Java将减少1小时的偏移值。但是对于日光节约的后半部分(statement-2 => 2019-10-06T 03:00 + 11:00 [澳大利亚/墨尔本]),java将时间增加了1小时,而+1抵消价值。
根据我的理解,java应该将时间增加1小时,并将偏移值+1(DST结束),而在DST开始时,java应该从时间减少1小时,将偏移值减少1。
请帮助我澄清差异。是Java 8问题,还是我的理解不正确?