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
添加回答
舉報