Duration und Period
Berechne Zeitdifferenzen typsicher mit Duration und Period.
Code-Vergleich
✕ Pre-Java 8
// How many days between two dates?
long diff = date2.getTime()
- date1.getTime();
long days = diff
/ (1000 * 60 * 60 * 24);
// ignores DST, leap seconds
✓ Java 8+
long days = ChronoUnit.DAYS
.between(date1, date2);
Period period = Period.between(
date1, date2);
Duration elapsed = Duration.between(
time1, time2);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Typsicher
Duration für Zeit, Period für Datum — keine Verwechslungen.
Korrekte Berechnung
Behandelt Sommerzeitumstellungen, Schaltjahre und Schaltsekunden.
Lesbar
ChronoUnit.DAYS.between() liest sich wie natürliche Sprache.
Alter Ansatz
Millisekunden-Arithmetik
Moderner Ansatz
Duration / Period
Seit JDK
8
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Duration und Period
Verfügbar
Weitgehend verfügbar seit JDK 8 (März 2014)
Wie es funktioniert
Duration steht für zeitbasierte Mengen (Stunden, Minuten, Sekunden). Period steht für datumsbasierte Mengen (Jahre, Monate, Tage). ChronoUnit.between() eignet sich für einfache Differenzen. Alle Klassen behandeln Sonderfälle korrekt.
Zugehörige Dokumentation