suchen
HeimJavajavaLernprogrammWie berechnet man den Zeitunterschied zwischen zwei Java LocalDateTime-Instanzen genau?

How to Accurately Calculate the Time Difference Between Two Java LocalDateTime Instances?

Berechnen der Zeitdifferenz zwischen LocalDateTime-Instanzen

In Java 8 kann die Berechnung der Differenz zwischen zwei LocalDateTime-Instanzen mithilfe der Klassen Period und Duration erreicht werden . Allerdings weist Ihr Code derzeit einige Ungenauigkeiten auf.

Originalcode-Analyse

Ihr Code verwendet die Period-Klasse, um die Jahre, Monate und Tage zwischen den beiden LocalDateTime-Instanzen zu berechnen . Für den Zeitunterschied konvertieren Sie die Instanzen nur mit den Zeitkomponenten in LocalDateTime und berechnen die Differenz mithilfe von Duration.

Das Problem entsteht, weil bei Ihrer Zeitberechnung davon ausgegangen wird, dass fromDateTime vor toDateTime liegt. Wenn die Datumsangaben nicht in der richtigen Reihenfolge sind, ergeben sich negative Zahlen, die zu falschen Zeitwerten führen.

Verbesserter Algorithmus mit ChronoUnit

Ein robusterer Ansatz beinhaltet die Verwendung der ChronoUnit-Enumeration um den Zeitunterschied zu berechnen. Hier ist der verbesserte Teil Ihres Codes:

long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime);
long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime);

ChronoUnit stellt eine Reihe vordefinierter Einheiten bereit, die die Differenz zwischen zwei DateTime-Instanzen genau berechnen. Durch Angabe der Einheit als STUNDEN oder MINUTEN kann der Zeitunterschied in der gewünschten Einheit ermittelt werden, ohne dass manuelle Umrechnungen oder die Verarbeitung negativer Werte erforderlich sind.

Aktualisiertes Beispiel

Mit der ChronoUnit-Methode berechnet der Code dann korrekt die Differenz zwischen den eingegebenen LocalDateTime-Instanzen, unabhängig von ihrer Reihenfolge:

LocalDateTime toDateTime = LocalDateTime.of(2014, 9, 9, 19, 46, 45);
LocalDateTime fromDateTime = LocalDateTime.of(1984, 12, 16, 7, 45, 55);
long years = Period.between(fromDateTime.toLocalDate(), toDateTime.toLocalDate()).getYears();
long months = Period.between(fromDateTime.toLocalDate(), toDateTime.toLocalDate()).getMonths();
long days = Period.between(fromDateTime.toLocalDate(), toDateTime.toLocalDate()).getDays();
long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime);
long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime);
System.out.println(years + " years " + months + " months " + days + " days " + hours + " hours " + minutes + " minutes.");

Dieser Code berechnet den Zeitunterschied korrekt als „29 Jahre 8 Monate 24 Tage 12 Stunden 0 Minuten.“

Das obige ist der detaillierte Inhalt vonWie berechnet man den Zeitunterschied zwischen zwei Java LocalDateTime-Instanzen genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools