ホームページ >Java >&#&チュートリアル >2 つの Joda-Time 日付の間の日数を正確に計算するにはどうすればよいですか?
Joda-Time 日付間の日数を計算する
Joda-Time を使用する場合、多くの場合、2 つの日付間の日数の差を決定する必要があります。 。 Days.daysBetween メソッドは解決策を提供しますが、夏時間 (DST) 調整を常に正しく処理できるわけではありません。正確な日を計算するには、次の方法を使用します。Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays()このコードは、toLocalDate() を使用して開始日と終了日の DateTime インスタンスを LocalDate に変換し、事実上、時、分、秒を無視します。コンポーネント.
DST あいまいさの例
DST あいまいさがある次の例を考えてみましょう:// 5am on October 20th to 1pm on October 21st, 2013, Brazil DateTimeZone BRAZIL = DateTimeZone.forID("America/Sao_Paulo"); DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, BRAZIL); DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, BRAZIL); // Using withTimeAtStartOfDay() System.out.println(Days.daysBetween(start.withTimeAtStartOfDay(), end.withTimeAtStartOfDay()).getDays()); // Using toLocalDate() System.out.println(Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays());withTimeAtStartOfDay() を使用すると、間違った答えが発生しますtoLocalDate() メソッドは正しく 1 を返しますが、0 です。 day.LocalDate に変換することで、DST によって生じる曖昧さがなくなり、より正確な日数の差が得られます。このアプローチにより、タイムゾーンや夏時間の考慮事項に関係なく、一貫した結果が保証されます。
以上が2 つの Joda-Time 日付の間の日数を正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。