ホームページ > Java > &#&チュートリアル > 2 つの Joda-Time 日付間の日の差を正確に計算するにはどうすればよいですか?

2 つの Joda-Time 日付間の日の差を正確に計算するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-01 14:59:15
オリジナル
873 人が閲覧しました

How to Accurately Calculate the Day Difference between Two Joda-Time Dates?

Joda-Time 日付間の日の差の計算

Joda-Time では、2 つの日付間の日の差を求めるには、時間の差異を考慮する必要があります。 。日数を正確に計算するには、時、分、秒を無視する必要があります。

Days.daysBetween を使用した元の解決策

Days.daysBetween メソッドが表示されます。適切な解決策を提供することを目的としていますが、一方のデートが夕方で、もう一方のデートが朝である場合に問題が発生します。これは、タイムゾーンによっては「一日の始まり」が午前 0 時ではなく午前 1 時を曖昧に指す場合があるためです。

LocalDate を使用した正確な計算

この曖昧さを回避するにはの場合は、DateTime の代わりに LocalDate を Days.daysBetween と組み合わせて使用​​することをお勧めします。 LocalDate は時間情報のない日付を表し、結果に日数の違いのみが反映されるようにします。

次の例を考えてみましょう:

DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, DateTimeZone.forID("America/Sao_Paulo"));
DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, DateTimeZone.forID("America/Sao_Paulo"));

int daysBetween = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();

System.out.println(daysBetween); // Prints 1
ログイン後にコピー

結論

LocalDate を使用すると、日数の差が生じます計算が正確になり、タイムゾーンの違いによる不一致や、時差により開始日と終了日が異なる日になる可能性が排除されます。

以上が2 つの Joda-Time 日付間の日の差を正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート