【发布时间】:2020-07-08 04:27:01
【问题描述】:
我在夏令时开始和结束时得到不同的结果。
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**[Australia/Melbourne])。 Java 正在减少 1 小时来抵消价值。但是对于夏令时的后半部分(statement-2=> 2019-10-06T03:00+11:00[Australia/Melbourne]),java 增加了 1 小时和 +1来抵消价值。
根据我的理解,java 应该增加 1 小时和 +1 到偏移值(DST 结束),而当 DST 开始时,java 应该从时间减少 1 小时,从偏移值减少 1。
请帮助我澄清这些差异。是java 8的问题还是我的理解不正确?
【问题讨论】:
标签: java datetime timezone dst