Formater avec DateTimeFormatter
Analyser et formater les dates
Formater avec DateTimeFormatter est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.
Transformer des dates en texte
La méthode toString par défaut d'une date l'affiche au format ISO. Pour contrôler son apparence ou analyser du texte qui n'est pas au format ISO, utilisez DateTimeFormatter du paquetage java.time.format.
Un modèle personnalisé
Créez un formateur avec ofPattern. Les lettres représentent des champs : yyyy pour l'année, MM pour le mois et dd pour le jour.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
System.out.println(date.format(f));
}
}Formater l'heure
Les modèles d'heure utilisent HH pour les heures au format 24 heures, mm pour les minutes et ss pour les secondes.
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(14, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(time.format(f));
}
}Combiner une date et une heure
Un même modèle peut inclure les champs de date et d'heure pour un LocalDateTime.
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
System.out.println(dt.format(f));
}
}Noms textuels des mois
Répéter la lettre correspondant au mois modifie son format : MM est un nombre, MMM est un nom abrégé comme mai et MMMM est le nom complet.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.ENGLISH);
System.out.println(date.format(f));
}
}Noms des jours de la semaine
Utilisez EEEE pour le nom complet du jour de la semaine et EEE pour sa forme abrégée. Fournissez une Locale pour obtenir une langue prévisible.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("EEEE, dd MMM", Locale.ENGLISH);
System.out.println(date.format(f));
}
}Horloge sur douze heures
Utilisez hh en minuscules pour les heures au format 12 heures et a pour l'indicateur AM ou PM.
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(15, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
System.out.println(time.format(f));
}
}Analyser avec un modèle
Le même formateur peut analyser le texte pour le reconvertir en date. Transmettez-le comme deuxième argument à parse.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = LocalDate.parse("30/05/2026", f);
System.out.println(date.getMonth());
}
}Gérer une entrée incorrecte
Si le texte ne correspond pas au modèle, l'analyse déclenche une DateTimeParseException. Placez l'analyse susceptible d'échouer dans un bloc d'essai et d'interception.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static void main(String[] args) {
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
try {
LocalDate.parse("not a date", f);
} catch (DateTimeParseException e) {
System.out.println("Invalid date format!");
}
}
}Formateurs intégrés
Pour les besoins courants, vous pouvez éviter les modèles et utiliser des formateurs prédéfinis comme DateTimeFormatter.ISO_DATE.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.format(DateTimeFormatter.ISO_DATE));
}
}Réutiliser vos formateurs
DateTimeFormatter est immuable et compatible avec les threads : créez-le donc une seule fois et réutilisez-le. Fournissez toujours une Locale lorsque des noms sont concernés, afin de garantir une sortie cohérente.
Vérification rapide
Testez vos connaissances sur le formatage.
Récapitulatif
Vous avez découvert le formatage des dates et des heures :
DateTimeFormatter.ofPatterndéfinit une sortie personnalisée- Les lettres correspondent à des champs :
yyyy,MM,dd,HH,mm - Un plus grand nombre de lettres répétées produit des formes textuelles comme
MMMMetEEEE - Le même formateur analyse le texte et déclenche une
DateTimeParseExceptionen cas d'entrée incorrecte - Les formateurs sont immuables et réutilisables ; transmettez une
Localepour les noms
Questions Fréquemment Posées
La leçon « Formater avec DateTimeFormatter » est-elle gratuite ?
Oui — le texte complet de « Formater avec DateTimeFormatter » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Formater avec DateTimeFormatter » ?
Analyser et formater les dates Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Java Academy ?
Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Formater avec DateTimeFormatter » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?
Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- LocalDate, LocalTime, LocalDateTime
- Instant et durée
- Period et arithmétique des dates
- Formater avec DateTimeFormatter