Dernière modification : 23/08/2022

Les dates en Java – Conversion, parsing et consultation

 

La gestion des dates en Java peut être complexe et très verbeuse. Nous allons découvrir ici des moyens faciles, courtes et performantes quant à son utilisation.

 

1. Récupération de la date courante

Récupération de la date uniquement :

// Version de java >= 8, préférer :
LocalDate localDate = LocalDate.now();
System.out.println(localDate); // 2020-01-06

// Version de java < 8 :
Date date = new Date();
System.out.println(date); // Mon Jan 06 12:54:00 CET 2020

Récupération de la date et l'heure :

// Version de java >= 8, préférer :
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime); // 2020-01-06T12:54:17.797651300

// Version de java < 8 :
Date date = new Date();
System.out.println(date); // Mon Jan 06 12:54:00 CET 2020

2. Conversion d'une date en chaîne de caractère

Utilisation d'un format de date non générique :

// Version de java >= 8, préférer :
LocalDateTime localDateTime = LocalDateTime.now();
// Format de la date attendue en sortie
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy hh:mm");
System.out.println(formatter.format(localDateTime)); // 19-01-2020 12:54

// Version de java < 8 :
Date date = new Date();
// Format de la date attendue en sortie
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm");
System.out.println(simpleDateFormat.format(date)); // 19-01-2020 12:54

Utilisation d'un format de date générique :

// Version de java >= 8, préférer :
LocalDateTime localDateTime = LocalDateTime.now();
// Format de la date attendue en sortie
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE;
System.out.println(formatter.format(localDateTime)); // 2020-01-19

Remarque : Les paternes sont expliqués plus bas dans cet article.

3. Parsing d'une chaîne de caractère en date

Utilisation d'un format de date non générique :

// Version de java >= 8, préférer :
// Date a transformer
String dateToConvert2 = "2020-01-06 15:40";
// Format de la date
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
// Transformation et affichage
LocalDateTime dateTime2 = LocalDateTime.parse(dateToConvert2, formatter2);
System.out.println(dateTime2); // 2020-01-06T15:40

// Version de java < 8 :
// Date a transformer
String dateToConvert2 = "2020-01-06 15:40";
// Format de la date
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// Transformation et affichage
Date date2 = simpleDateFormat2.parse(dateToConvert2);
System.out.println(date2); // Mon Jan 06 15:40:00 CET 2020

Utilisation d'un format de date générique :

// Version de java >= 8, préférer :
// Date a transformer
String dateToConvert3 = "2020-01-19T15:40:10";
// Format de la date
DateTimeFormatter formatter3 = DateTimeFormatter.ISO_LOCAL_DATE_TIME ;
// Transformation et affichage
LocalDateTime dateTime3 = LocalDateTime.parse(dateToConvert3, formatter3);
System.out.println(dateTime3); // 2020-01-19T15:40

Remarque : Les paternes sont expliqués plus bas dans cet article.

4. Symboles pour la gestion des dates (paternes)

Les différents symboles pour la gestion des dates sont les suivants (non exhaustif) :

  • y - Année (2020; 20)
  • M - Mois de l'année (January; Jan; 01)
  • d - Jour du mois (1-31)
  • E - Nom du jour dans la semaine (lundi, dimanche)
  • a - Marqueur Am / pm (AM, PM)
  • H - Heure dans la journée (0-23)
  • h - Heure en am / pm (1-12)
  • m - Minute (0-60)
  • s - Secondes (0-60)
  • S - Millisecondes (547)

Le nombre de lettre utilisé pour chaque symbole détermine le format.

La liste complète est disponible à ces adresses :