【发布时间】:2019-04-16 16:23:25
【问题描述】:
夏令时在美国/东部时区的 11 月 1 日凌晨 2 点结束。结果,凌晨 2 点变成了凌晨 1 点。
我无法理解下面给出的代码中的以下内容:
- 为什么第 2 行显示时间 09:00,为什么不显示 10:00(增加 1 天)?
-
为什么第 4 行显示时间 10:00,为什么不显示 09:00(加上 24 小时)?
LocalDateTime ld = LocalDateTime.of(2015, Month.OCTOBER, 31, 10, 0); ZonedDateTime date = ZonedDateTime.of(ld, ZoneId.of("US/Eastern")); System.out.println(date); //line 1 - 2015-10-31T10:00-04:00[US/Eastern] date = date.plus(Duration.ofDays(1)); System.out.println(date); //line 2 - 2015-11-01T09:00-05:00[US/Eastern] date = ZonedDateTime.of(ld, ZoneId.of("US/Eastern")); System.out.println(date); //line 3 - 2015-10-31T10:00-04:00[US/Eastern] date = date.plus(Period.ofDays(1)); System.out.println(date); //line 4 - 2015-11-01T10:00-05:00[US/Eastern]
有人可以帮我吗?
【问题讨论】:
-
1 天和 24 小时是两个不同的东西。
标签: java datetime java-8 dst zoneddatetime