Heim >Java >javaLernprogramm >Wie berechnet man die Zeitdifferenz zwischen zwei LocalDateTime-Objekten in Java genau?
Berechnen der Zeitdifferenz zwischen LocalDateTime-Objekten
Um Ihr Anliegen auszuräumen, erfordert die Berechnung der Zeitdifferenz zwischen zwei LocalDateTime-Objekten einen umfassenden Ansatz, der genau kann stellen die Zeitspanne in mehreren Einheiten dar.
Die Java 8-API stellt die Period- und Duration-Klassen bereit, um dies effektiv zu handhaben. Der Zeitraum stellt ein Zeitintervall in Form von Jahren, Monaten und Tagen dar, während sich die Dauer mit Stunden, Minuten und Sekunden befasst.
Ihr vorhandener Code verwendet Zeitraum und Dauer, um den Zeitunterschied zu bestimmen, es gibt jedoch eine geringfügige Änderung erforderlich. Hier ist der aktualisierte Code:
import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.Period; import java.time.ZoneId; public class Main { static final int MINUTES_PER_HOUR = 60; static final int SECONDS_PER_MINUTE = 60; static final int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR; 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, toDateTime); long seconds = Duration.between(fromDateTime, toDateTime).getSeconds(); long hours = seconds / SECONDS_PER_HOUR; long minutes = ((seconds % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE); long secs = (seconds % SECONDS_PER_MINUTE); System.out.println(period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days " + hours + " hours " + minutes + " minutes " + secs + " seconds."); } }
Die wichtigste Änderung hier ist die Verwendung von Duration.between(fromDateTime, toDateTime).getSeconds(); um die Sekundendifferenz zu berechnen. Dies gewährleistet Genauigkeit beim Umgang mit Zeitspannen, die über Mitternacht liegen oder negative Werte haben.
Wenn negative Zahlen im Spiel sind, verarbeitet Duration diese korrekt und stellt die Zeitdifferenz als negativen Wert bereit. Darüber hinaus ist die Verwendung von ChronoUnit für die Umrechnung bestimmter Einheiten ein zuverlässiger Ansatz.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Zeitdifferenz zwischen zwei LocalDateTime-Objekten in Java genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!