L'API java.time
import java.time.*;
LocalDate aujourdhui = LocalDate.now();
LocalDate cloture = LocalDate.of(2026, 11, 30);
LocalDateTime maintenant = LocalDateTime.now();
Depuis Java 8 — on utilise
java.time (immuable, clair), pas les anciennes Date/Calendar obsolètes et sources de bugs.Durées et formatage
import java.time.temporal.ChronoUnit; import java.time.format.DateTimeFormatter; long jours = ChronoUnit.DAYS.between(aujourdhui, cloture); LocalDate echeance = cloture.plusDays(15); boolean passe = cloture.isBefore(aujourdhui); String fr = cloture.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
🛢️ Sur le projet Fioul Groupé
Chaque campagne a une dateCloture : on calcule les « jours restants » (ChronoUnit.DAYS.between) pour l'afficher dans l'appli, et on détecte les campagnes échues (isBefore(now)) — exactement l'événement de clôture automatique du parcours MySQL, ici en Java.
À retenir
- java.time (LocalDate, LocalDateTime) remplace Date/Calendar.
- Les objets sont immuables : plusDays renvoie une nouvelle date.
- ChronoUnit.DAYS.between calcule une durée ; isBefore/isAfter comparent.
- DateTimeFormatter formate (dd/MM/yyyy) pour l'affichage.