首頁 > Java > java教程 > 如何精確計算兩個Java LocalDateTime實例之間的時間差?

如何精確計算兩個Java LocalDateTime實例之間的時間差?

Susan Sarandon
發布: 2024-12-04 19:10:14
原創
226 人瀏覽過

How to Accurately Calculate the Time Difference Between Two Java LocalDateTime Instances?

計算LocalDateTime 實例之間的時差

在Java 8 中,可以使用period 和Duration 類別來計算兩個LocalDateTime 實例之間的時差。但是,您的程式碼目前面臨一些不準確的情況。

原始程式碼分析

您的程式碼使用Period類別來計算兩個LocalDateTime實例之間的年、月和日。對於時間差,您將執行個體轉換為僅包含時間分量的 LocalDateTime,並使用 Duration 計算差異。

出現問題的原因是您的時間計算假設 fromDateTime 在 toDateTime 之前。如果日期無序,則會產生負數,從而導致不正確的時間值。

使用 ChronoUnit 改進演算法

更強大的方法涉及使用 ChronoUnit 枚舉來計算時間差。以下是程式碼的改進部分:

ChronoUnit 提供了一組預定義單位,可以準確計算兩個 DateTime 實例之間的差異。將單位指定為 HOURS 或 MINUTES,可以獲得所需單位的時間差,無需手動轉換或處理負值。

更新範例

使用ChronoUnit 方法,程式碼會正確計算輸入LocalDateTime 實例之間的差異,無論它們如何order:

此程式碼正確計算時差為「29年8個月24天12小時0分鐘。」

以上是如何精確計算兩個Java LocalDateTime實例之間的時間差?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板