Travailler avec les dates en Java : aperçu des bibliothèques et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec les dates en Java : bibliothèques et outils



Travailler avec les dates et l'heure est l'une des tâches clés dans toute application. En Java, pendant longtemps, les classes standard java.util.Date et java.util.Calendar ont été critiquées en raison de leur inconfort, de leur mutabilité et de leur mauvaise prise en charge des fuseaux horaires. Cependant, avec la sortie de Java 8, la situation a radicalement changé. Dans cet article, nous allons passer en revue les principales bibliothèques et outils pour travailler avec les dates en Java, qui vous aideront à écrire un code propre et fiable.



1. Bibliothèque standard java.time (Java 8+)



Depuis Java 8, les développeurs ont accès au puissant package java.time, basé sur la norme ISO-8601. C'est la méthode recommandée pour travailler avec les dates et l'heure. Les classes principales :



  • LocalDate — date sans heure (année, mois, jour).
  • LocalTime — heure sans date (heures, minutes, secondes, nanosecondes).
  • LocalDateTime — combinaison de date et d'heure.
  • ZonedDateTime — date et heure avec prise en compte du fuseau horaire.
  • Instant — moment en UTC (pour le temps machine).
  • Duration et Period — pour travailler avec des intervalles.


Exemple : création et formatage d'une date



import java.time.LocalDate;import java.time.format.DateTimeFormatter;

public class DateExample { public static void main(String[] args) { // Date actuelle LocalDate today = LocalDate.now(); System.out.println("Aujourd'hui : " + today);

// Création d'une date spécifique LocalDate birthDate = LocalDate.of(1990, 5, 15); System.out.println("Date de naissance : " + birthDate);

// Formatage DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); String formatted = birthDate.format(formatter); System.out.println("Date formatée : " + formatted);

// Analyse d'une chaîne String dateStr = "2023-12-31"; LocalDate parsedDate = LocalDate.parse(dateStr); System.out.println("Analysé : " + parsedDate); }}


Exemple : calcul de la différence entre deux dates



import java.time.LocalDate;import java.time.Period;import java.time.temporal.ChronoUnit;

public class DateDifference { public static void main(String[] args) { LocalDate start = LocalDate.of(2020, 1, 1); LocalDate end = LocalDate.of(2024, 3, 15);

Period period = Period.between(start, end); System.out.println("Différence : " + period.getYears() + " ans, " + period.getMonths() + " mois, " + period.getDays() + " jours");

long daysBetween = ChronoUnit.DAYS.between(start, end); System.out.println("Total de jours : " + daysBetween); }}


2. Joda-Time (pour les anciennes versions de Java)



Avant l'arrivée de java.time, la bibliothèque Joda-Time était la norme de facto. Elle fournissait des classes immuables pratiques et une prise en charge des fuseaux horaires. Si vous travaillez avec Java 7 ou une version antérieure, Joda-Time est un excellent choix.



Ajout (Maven) :

<dependency>    <groupId>joda-time</groupId>    <artifactId>joda-time</artifactId>    <version>2.12.7</version></dependency>


Exemple : travail avec Joda-Time



import org.joda.time.DateTime;import org.joda.time.Days;import org.joda.time.format.DateTimeFormat;import org.joda.time.format.DateTimeFormatter;

public class JodaExample { public static void main(String[] args) { // Date et heure actuelles DateTime now = new DateTime(); System.out.println("Maintenant : " + now);

// Création d'une date DateTime specificDate =

Recommendations