Java 8: Bestimmen zeitlicher Unterschiede zwischen zwei LocalDate
Berechnen der Differenz zwischen zwei LocalDateTime-Objekten, ausgedrückt in Jahren, Monaten, Tagen, Stunden , Minuten und Sekunden können eine komplexe Aufgabe sein. Ein Ansatz besteht darin, die in Java 8 eingeführten Period- und Duration-Klassen zu verwenden. Wenn die Differenz jedoch negative Werte umfasst, wie Ihr Code zeigt, kann dies zu falschen Ergebnissen führen.
Das Problem
Ihr Code berechnet den Zeitraum zwischen den beiden Daten und stellt die Jahre, Monate und Tage dar. Anschließend berechnet es den Zeitunterschied in Sekunden und wandelt diese Sekunden in Stunden, Minuten und Sekunden um. Es werden jedoch keine negativen Werte berücksichtigt, die auftreten können, wenn das „Von“-Datum größer als das „Bis“-Datum ist.
Die Lösung
Anzusprechen Bei diesem Problem können wir die ChronoUnit-Enumeration verwenden, um den Zeitunterschied direkt zu bestimmen. ChronoUnit bietet eine bequeme Möglichkeit, Zeiteinheiten wie Minuten und Stunden zwischen zwei LocalDateTime-Objekten zu berechnen.
Hier ist der aktualisierte Code mit ChronoUnit:
import java.time.ChronoUnit; import java.time.LocalDateTime; public class Main { public static void main(String[] args) { LocalDateTime toDateTime = LocalDateTime.of(2014, 9, 9, 19, 46, 45); LocalDateTime fromDateTime = LocalDateTime.of(1984, 12, 16, 7, 45, 55); long years = ChronoUnit.YEARS.between(fromDateTime, toDateTime); long months = ChronoUnit.MONTHS.between(fromDateTime, toDateTime); long days = ChronoUnit.DAYS.between(fromDateTime, toDateTime); long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime); long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime); long seconds = ChronoUnit.SECONDS.between(fromDateTime, toDateTime); System.out.println(years + " years " + months + " months " + days + " days " + hours + " hours " + minutes + " minutes " + seconds + " seconds."); } }
Mit dieser Änderung sollte Ihr Code Berechnen Sie genau die zeitliche Differenz zwischen den beiden LocalDateTime-Objekten.
Das obige ist der detaillierte Inhalt vonWie kann Java 8 zeitliche Unterschiede zwischen zwei lokalen Daten genau berechnen und negative Werte verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!