Duration e Period
Calcola le differenze di tempo con Duration e Period type-safe.
Confronto Codice
✕ 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);
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Type-safe
Duration per il tempo, Period per le date — nessuna confusione.
Calcoli corretti
Gestisce le transizioni DST, gli anni bisestili e i secondi intercalari.
Leggibile
ChronoUnit.DAYS.between() si legge come in inglese.
Approccio Vecchio
Aritmetica in millisecondi
Approccio Moderno
Duration / Period
Dal JDK
8
Difficoltà
Principiante
Supporto JDK
Duration e Period
Disponibile
Ampiamente disponibile dal JDK 8 (marzo 2014)
Come funziona
Duration è per quantità basate sul tempo (ore, minuti, secondi). Period è per quantità basate sulla data (anni, mesi, giorni). ChronoUnit.between() per differenze semplici. Tutti gestiscono correttamente i casi limite.
Documentazione Correlata