Heim >Java >javaLernprogramm >Wie berechnet man die Tagesdifferenz zwischen zwei Joda-Time-Daten genau?
Berechnung der Tagesdifferenz zwischen Joda-Time-Daten
In Joda-Time erfordert die Bestimmung der Differenz zwischen zwei Daten in Tagen die Berücksichtigung von Zeitdiskrepanzen . Um die Anzahl der Tage genau zu berechnen, müssen Stunden, Minuten und Sekunden ignoriert werden.
Ursprüngliche Lösung mit Days.daysBetween
Die Methode Days.daysBetween wird angezeigt eine geeignete Lösung bereitzustellen, es treten jedoch Probleme auf, wenn ein Termin abends und der andere morgens stattfindet. Dies liegt daran, dass sich „Tagesbeginn“ in manchen Zeitzonen mehrdeutig auf 1 Uhr morgens und nicht auf Mitternacht beziehen kann.
Genaue Berechnung mit LocalDate
Um diese Mehrdeutigkeit zu umgehen , wird empfohlen, LocalDate anstelle von DateTime in Verbindung mit Days.daysBetween zu verwenden. LocalDate stellt ein Datum ohne Zeitinformationen dar und stellt sicher, dass das Ergebnis nur die Differenz in Tagen widerspiegelt.
Beispiel
Betrachten Sie das folgende Beispiel:
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
Fazit
Durch die Verwendung von LocalDate wird die Berechnung der Tagesdifferenz genauer und eliminiert Inkonsistenzen aufgrund von Zeitzonenschwankungen und die Möglichkeit, dass sich Start- und Enddatum aufgrund von Zeitunterschieden über verschiedene Tage erstrecken.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Tagesdifferenz zwischen zwei Joda-Time-Daten genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!