ski*_*kip 2 java datetime dst java-8 zoneddatetime
美国/东部时区夏令时于 11 月 1 日凌晨 2 点结束。结果,凌晨 2 点变成了凌晨 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]
Run Code Online (Sandbox Code Playgroud)有人可以帮我吗?
持续时间:尽管该ofDays方法Duration还没有\xe2\x80\x99t 得到天的概念。Duration.ofDays(1)立即转换为 24 小时,所以这就是您要添加的内容。由于您在 DST 结束前一天的 10:00 添加了 24 小时,因此您将得到第二天的 09:00,正如您所观察到的,
期间:Duration与已知Period的日、周、月和年相反。因此,您要添加 1 个日历日,在第二天 (10:00) 达到相同的挂钟时间,即使这意味着 25 小时后(而不是 24 小时)。
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |