时间周期 java_周期和持续时间 / Period and Duration
# 周期和持續時間 / Period and Duration
當您編寫代碼來指定一段時間時,請使用最符合您需要的類或方法: Duration 類, Period 類或 ChronoUnit.between 方法。
甲持續時間測量使用基于時間的值(秒,毫微秒)的時間量。Period 使用基于日期的值(年,月,日)。
注 一天的持續 / Duration 時間正好是 24 小時。一天的時間,當添加到 ZonedDateTime 時,
可能會根據時區而變化。例如,如果它發生在夏令時的第一天或最后一天。
# Duration
在測量機器時間的情況下,Duration 最合適,例如使用 Instant 對象的代碼。Duration 對象以秒或納秒度量,
不使用基于 Date 的結構,如年、月和日,盡管類提供了轉換為天數、小時和分鐘的方法。一個 Duration 可以有一個負值,
如果它是在開始點之前發生的端點創建的。
以下代碼以納秒計算兩個瞬間之間的持續時間:
比如:將 10 秒變成一個 Duration,再讓 start 加上這個 Duration,也就是加 10 秒;
這種 api 可能會更靈活,在計算完兩個時間點的持續時間后,還可以進行計算
# ChronoUnit
定義了用于測量時間的單位。當你想要在一個單位的時間內測量一段時間,比如幾天或幾秒時,
ChronoUnit.between 可以做到。between 方法與所有基于時間的對象一起工作,但是它只返回單個單元的數量。
下面的代碼以毫秒為間隔計算兩個時間戳之間的差距:
而 Duration 類則可以轉換為更多的時間單位;
# Period
要用基于日期的值(年、月、日)來定義大量的時間,使用周期類。周期類提供了各種 get 方法,
例如 getMonths, getDays 和 getYears,這樣您就可以從周期中提取出時間的數量。
時間由三個單位組成:月、日、年。為了顯示在一個單位時間內測量的時間量,比如天數,你可以使用 ChronoUnit.between 的方法。
下面的代碼報告了你的年齡,假設你是在 1960 年 1 月 1 日出生的。周期類用于確定數年、月和日的時間。
同一時期,在總天數中,是通過使用 ChronoUnit.between 來確定的。在方法之間,在括號中顯示:
這些計算不考慮時區差異。舉個例子,如果你出生在澳大利亞,但現在住在班加羅爾,這就會略微影響你的確切年齡。
在這種情況下,使用一個周期與 ZonedDateTime 類一起使用。當你向一個 ZonedDateTime 添加一個 Period 時,時間差異就會被觀察到。
# 總結 Duration : 可被轉換為天,小時,分鐘,秒,毫秒,納秒
Period :可被轉換為年,月,天
ChronoUnit:可以測量任意一個單位的間隔時間;也提供了各種單位常量
總結
以上是生活随笔為你收集整理的时间周期 java_周期和持续时间 / Period and Duration的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java标点符号用什么意思_java怎么
- 下一篇: java不可编辑的文本框_如何使编辑文本