Maîtriser Date et Heure en Java : SimpleDateFormat, Récupération Date Actuelle et Comparaison de Dates
Ce tutoriel couvre les bases du travail avec les dates et heures en Java, notamment :
- Afficher la date et l'heure actuelles
- Formater et parser les dates avec
SimpleDateFormat - Comparer deux dates
Un objet Java Date représente les composants suivants :

- L'année (2 ou 4 chiffres)
- Le mois (numérique, abréviation trois lettres, ou nom complet)
- Le jour du mois
- Le jour de la semaine (ex. : Dim, Lun, Mar)
Les ordinateurs prennent en charge de nombreux paramètres supplémentaires liés aux dates, que nous aborderons dans les sections suivantes.
Afficher la Date Actuelle en Java
La classe java.util.Date de Java fournit un moyen simple d'obtenir la date et l'heure système actuelles. Voici un exemple minimal :
import java.util.Date;
class ExempleDate {
public static void main(String[] args) {
Date actuelle = new Date();
System.out.println(actuelle.toString());
}
}
Sortie :
Wed Nov 29 06:36:22 UTC 2017
La sortie utilise le format par défaut de toString(). Pour présenter la date dans une mise en page personnalisée, vous devez la formater explicitement.
SimpleDateFormat : Parser et Formater les Dates
Java formate les dates en utilisant des chaînes de motif qui associent des lettres à des composants de date spécifiques. Voici un tableau de référence :
| Lettre | Composant Date ou Heure | Exemple |
|---|---|---|
| G | Indicateur d'ère | AD |
| y | Année | 2018 |
| M | Mois dans l'année | Juillet, Juil, 07 |
| w | Semaine dans l'année | 27 |
| W | Semaine dans le mois | 2 |
| D | Jour dans l'année | 189 |
| d | Jour dans le mois | 10 |
| F | Jour de semaine dans le mois | 2 |
| E | Nom du jour dans la semaine | Mardi, Mar |
| u | Numéro du jour de semaine (1=Lun … 7=Dim) | 1 |
| a | Marqueur AM/PM | PM |
| H | Heure dans la journée (0-23) | 0 |
| k | Heure dans la journée (1-24) | 24 |
| K | Heure en am/pm (0-11) | 0 |
| h | Heure en am/pm (1-12) | 12 |
| m | Minute dans l'heure | 30 |
| s | Seconde dans la minute | 55 |
| S | Milliseconde | 978 |
| z | Fuseau horaire | Pacific Standard Time; PST; GMT-08:00 |
| Z | Décalage fuseau horaire | -0800 |
| X | Fuseau horaire | -08, -0800, -08:00 |
Consultez ce tableau chaque fois que vous devez construire une chaîne de format spécifique.
Utilisation de SimpleDateFormat
La classe SimpleDateFormat vous permet de définir un motif pour formater ou parser les dates. Par exemple :
- Format souhaité : 2012.10.23 20:20:45 PST → motif
yyyy.MM.dd HH:mm:ss zzz - Format souhaité : 09:30:00 AM 23-Mai-2012 → motif
hh:mm:ss a dd-MMM-yyyy
Astuce : Faites attention à la casse – utiliser M pour les mois et m pour les minutes est essentiel.
import java.text.SimpleDateFormat;
import java.util.Date;
class TestFormatDates {
public static void main(String[] args) {
Date maintenant = new Date();
System.out.println(maintenant);
String motif = "hh:mm:ss a dd-MMM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(motif);
System.out.println(sdf.format(maintenant));
}
}
Sortie :
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Comparaison de Dates

La méthode la plus fiable pour la comparaison de dates en Java est compareTo(), qui retourne une valeur négative si la première date est antérieure, zéro si égale, et positive si postérieure.
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
class TestComparaisonDates {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date1 = sdf.parse("20-08-1981");
Date date2 = sdf.parse("12-10-2012");
System.out.println("Date1 : " + sdf.format(date1));
System.out.println("Date2 : " + sdf.format(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("La date 1 survient après la date 2");
} else if (date1.compareTo(date2) < 0) {
System.out.println("La date 1 survient avant la date 2");
} else {
System.out.println("Les deux dates sont identiques");
}
}
}
Sortie :
Date1 : 20-08-1981 Date2 : 12-10-2012 La date 1 survient avant la date 2
Java
- Calcul de la tension et du courant dans les circuits CC réactifs
- Récupérer la date et l'heure actuelles en Python : Guide pratique
- Python : Récupérer l'heure actuelle et les données de fuseau horaire facilement
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser la Date et l'Heure en Java : Constructeurs, Méthodes et Bonnes Pratiques
- Guide complet sur la date et l'heure en C++
- Java 10 : Versionnage basé sur le temps pour des mises à jour biannuelles prévisibles