Date
Java で s を取得する方法について SO に多くの質問があることは知っていますが、新しい Java 8 Date
API を使用した例が欲しいです。JodaTime ライブラリについても知っていますが、外部ライブラリに依存しない方法が欲しいです。
関数は次の制限に準拠する必要があります。
- 日付保存時間によるエラーを防ぐ
- 入力は2つの
Date
オブジェクトです(時間なしで、については知っていますLocalDateTime
が、インスタンスでこれを行う必要がありますDate
)
ベストアンサー1
論理的なカレンダー日が必要な場合は、DAYS.between()
方法からjava.time.temporal.ChronoUnit
:
LocalDate dateBefore;
LocalDate dateAfter;
long daysBetween = DAYS.between(dateBefore, dateAfter);
文字通り24時間の日数(期間)が必要な場合は、Duration
代わりにクラス:
LocalDate today = LocalDate.now()
LocalDate yesterday = today.minusDays(1);
// Duration oneDay = Duration.between(today, yesterday); // throws an exception
Duration.between(today.atStartOfDay(), yesterday.atStartOfDay()).toDays() // another option
詳細については、次のドキュメントを参照してください。Java SE 8 の日付と時刻。