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
Freigeben: 2024-12-04 09:48:11
Original
234 Leute haben es durchsucht

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()
Nach dem Login kopieren

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());
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage