Heim >Java >javaLernprogramm >Wie kann man die Anzahl der Tage zwischen zwei Joda-Zeitdaten genau berechnen?

Wie kann man die Anzahl der Tage zwischen zwei Joda-Zeitdaten genau berechnen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-04 09:48:11148Durchsuche

How to Accurately Calculate the Number of Days Between Two Joda-Time Dates?

Tage zwischen Joda-Time-Daten berechnen

Bei der Arbeit mit Joda-Time ist es oft notwendig, die Differenz in Tagen zwischen zwei Daten zu ermitteln . Die Days.daysBetween-Methode bietet zwar eine Lösung, verarbeitet jedoch Sommerzeitanpassungen (DST) nicht immer korrekt.

Um genaue Tagesberechnungen sicherzustellen, verwenden Sie den folgenden Ansatz:

Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays()

Dieser Code konvertiert die Start- und End-DateTime-Instanzen mithilfe von toLocalDate() in LocalDate und ignoriert dabei effektiv die Stunde, Minute und Sekunde Komponenten.

Beispiel mit DST-Mehrdeutigkeit

Betrachten Sie das folgende Beispiel mit DST-Mehrdeutigkeit:

// 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());

Die Verwendung von withTimeAtStartOfDay() führt zu einer falschen Antwort von 0, während die toLocalDate()-Methode korrekt 1 zurückgibt Tag.

Durch die Konvertierung in LocalDate beseitigen wir die durch die Sommerzeit verursachte Mehrdeutigkeit und erhalten eine genauere Differenz in Tagen. Dieser Ansatz gewährleistet konsistente Ergebnisse unabhängig von Zeitzonen- oder Sommerzeitüberlegungen.

Das obige ist der detaillierte Inhalt vonWie kann man die Anzahl der Tage zwischen zwei Joda-Zeitdaten genau berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn