2 回答
TA贡献1836条经验 获得超5个赞
持续时间:尽管该ofDays方法Duration没有天数的概念。Duration.ofDays(1)立即转换为 24 小时,所以这就是您要添加的内容。由于您在 DST 结束前一天将 24 小时添加到 10:00,因此您可以在第二天得到 09:00,如您所见,
时期:与已知日、周、月和年Duration相反。Period因此,您要添加 1 个日历日,在第二天(10:00)达到相同的挂钟时间,即使这意味着 25 小时后(不是 24 小时)。
TA贡献1786条经验 获得超13个赞
请参阅有关Duration和Period的完整 Java 文档,只需一次快速的 Google 搜索即可。
从持续时间:
此外,可以使用 DAYS 单位并将其视为正好等于 24 小时,从而忽略夏令时的影响。有关此类的基于日期的等效项,请参见期间。
从期间:
当添加到 ZonedDateTime 时,持续时间和期间对夏令时的处理有所不同。Duration 将添加精确的秒数,因此一天的持续时间始终是 24 小时。相比之下,Period 会添加一个概念日,试图保持本地时间
因此,Period将保持相同的小时,而 Duration 将增加 24 小时。
10 月 31 日 10:00 后 24 小时即为 11 月 1 日 9:00。
11:00
12:00
13:00(下午 1 点)
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
0:00(午夜)
1:00
1:00(这是额外的一小时)
2:00
3:00
4:00
5:00
6:00
7:00
8:00
9:00
添加回答
举报
