ホームページ >Java >&#&チュートリアル >Java 8 は、2 つの LocalDateTime インスタンスの差を年、月、日、時、分で正確に計算するにはどうすればよいでしょうか?
Java 8: 複数の単位での 2 つの LocalDateTime インスタンスの差の計算
さまざまな時間単位での 2 つの LocalDateTime インスタンスの差の計算課題。 1 つのアプローチは、Java 8 で導入された Period クラスと Duration クラスを利用することです。
初期実装の課題
提供されたコードは、Period (年、月、日を処理する) と期間 (時間、分、秒を管理する) です。ただし、計算にはいくつかの不一致があります。
改善されました計算
正確な計算を保証するには、日付と時刻から特定の時間単位を抽出するメソッドを提供する ChronoUnit 列挙型の使用を検討してください。
import java.time.ChronoUnit; import java.time.LocalDateTime; import java.time.Period; public class CalculateLocalDateTimeDifference { public static void main(String[] args) { LocalDateTime toDateTime = LocalDateTime.of(2014, 9, 9, 19, 46, 45); LocalDateTime fromDateTime = LocalDateTime.of(1984, 12, 16, 7, 45, 55); Period period = Period.between(fromDateTime.toLocalDate(), toDateTime.toLocalDate()); long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime); long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime); System.out.println(period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days " + hours + " hours " + minutes + " minutes."); } }
説明
この強化されたアルゴリズムは、正と負の両方の時間差について正確な結果を提供します。
以上がJava 8 は、2 つの LocalDateTime インスタンスの差を年、月、日、時、分で正確に計算するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。