Java 8: Berechnen der Differenz zwischen zwei LocalDateTime-Instanzen in mehreren Einheiten
Die Berechnung der Differenz zwischen zwei LocalDateTime-Instanzen in verschiedenen Zeiteinheiten kann vorliegen Herausforderungen. Ein Ansatz besteht darin, die in Java 8 eingeführten Period- und Duration-Klassen zu nutzen.
Herausforderungen bei der Erstimplementierung
Der bereitgestellte Code versucht, die Differenz durch Kombination von Period ( (womit Jahre, Monate und Tage verwaltet werden) und Dauer (womit Stunden, Minuten und Sekunden verwaltet werden). Es gibt jedoch einige Inkonsistenzen bei der Berechnung:
Verbessert Berechnung
Um genaue Berechnungen sicherzustellen, sollten Sie die Verwendung der ChronoUnit-Enumeration in Betracht ziehen, die Methoden zum Extrahieren bestimmter Zeiteinheiten aus Datums- und Uhrzeitangaben bereitstellt. Hier ist eine verbesserte Version:
import java.time.ChronoUnit; import java.time.LocalDateTime; import java.time.Period; public class CalculateLocalDateTimeDifference { 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); Period period = Period.between(fromDateTime.toLocalDate(), toDateTime.toLocalDate()); long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime); long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime); System.out.println(period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days " + hours + " hours " + minutes + " minutes."); } }
Erklärung
Dieser erweiterte Algorithmus liefert genaue Ergebnisse sowohl für positive als auch negative Zeitdifferenzen.
Das obige ist der detaillierte Inhalt vonWie kann Java 8 die Differenz zwischen zwei LocalDateTime-Instanzen in Jahren, Monaten, Tagen, Stunden und Minuten genau berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!