Duration et Period
Calculez les différences de temps avec Duration et Period de façon sûre en termes de types.
Comparaison de Code
✕ 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);
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Sûr en termes de types
Duration pour le temps, Period pour les dates — sans confusion.
Calcul correct
Gère les transitions d'heure d'été, les années bissextiles et les secondes intercalaires.
Lisible
ChronoUnit.DAYS.between() se lit comme un langage naturel.
Ancienne Approche
Arithmétique en millisecondes
Approche Moderne
Duration / Period
Depuis JDK
8
Difficulté
Débutant
Support JDK
Duration et Period
Disponible
Disponible depuis JDK 8 (mars 2014)
Comment ça fonctionne
Duration est pour les quantités basées sur le temps (heures, minutes, secondes). Period est pour les quantités basées sur les dates (années, mois, jours). ChronoUnit.between() pour les différences simples. Tous gèrent correctement les cas limites.
Documentation Associée