計算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中文網其他相關文章!