Comment formater les dates avec printf() en Java

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Java propose un ensemble puissant d'outils pour formater les dates et les heures, y compris la méthode polyvalente printf(). Dans ce tutoriel, nous allons explorer comment exploiter printf() pour formater les dates dans vos applications Java, couvrant à la fois les techniques de base et avancées. Que vous soyez un débutant ou un développeur Java expérimenté, ce guide vous aidera à améliorer vos capacités de gestion des dates et à écrire un code plus efficace et plus lisible.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/strings("Strings") java/StringManipulationGroup -.-> java/stringbuffer_stringbuilder("StringBuffer/StringBuilder") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/date("Date") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/format("Format") subgraph Lab Skills java/output -.-> lab-414032{{"Comment formater les dates avec printf() en Java"}} java/strings -.-> lab-414032{{"Comment formater les dates avec printf() en Java"}} java/stringbuffer_stringbuilder -.-> lab-414032{{"Comment formater les dates avec printf() en Java"}} java/date -.-> lab-414032{{"Comment formater les dates avec printf() en Java"}} java/format -.-> lab-414032{{"Comment formater les dates avec printf() en Java"}} end

Introduction au formatage des dates en Java

Le formatage des dates en Java est une tâche courante que les développeurs rencontrent souvent. Java propose une variété de méthodes et d'outils pour formater les dates, y compris la fonction printf(). La fonction printf() vous permet de formater les dates en utilisant un modèle spécifique, ce qui facilite l'affichage des dates dans un format cohérent et lisible.

Dans cette section, nous allons explorer les bases du formatage des dates en Java en utilisant la fonction printf(). Nous aborderons les différents modèles de formatage de dates et d'heures disponibles et fournirons des exemples pour vous aider à comprendre comment les utiliser efficacement.

Bases du formatage des dates

La fonction printf() en Java utilise une chaîne de format pour spécifier comment la date doit être affichée. La chaîne de format est composée d'une combinaison de texte littéral et de spécificateurs de format, qui sont indiqués par le caractère % suivi d'une lettre ou d'une combinaison de lettres.

Voici un exemple de comment utiliser la fonction printf() pour formater une date :

import java.time.LocalDate;
import java.time.LocalDateTime;

public class DateFormatting {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        LocalDateTime dateTime = LocalDateTime.now();

        System.out.printf("Today's date is: %tD%n", date);
        System.out.printf("The current date and time is: %tF %tT%n", dateTime, dateTime);
    }
}

Sortie :

Today's date is: 04/18/23
The current date and time is: 2023-04-18 14:35:22

Dans cet exemple, nous utilisons les spécificateurs de format %tD et %tF pour afficher la date respectivement dans les formats MM/dd/yy et yyyy-MM-dd. Nous utilisons également le spécificateur de format %tT pour afficher l'heure dans le format HH:mm:ss.

Modèles de formatage des dates

Java propose une large gamme de modèles de formatage de dates et d'heures que vous pouvez utiliser avec la fonction printf(). Voici quelques-uns des modèles les plus courants :

Modèle Description
%tA Le nom complet du jour de la semaine (par exemple, "lundi")
%ta Le nom abrégé du jour de la semaine (par exemple, "lun")
%tB Le nom complet du mois (par exemple, "janvier")
%tb Le nom abrégé du mois (par exemple, "jan")
%td Le jour du mois sous forme de nombre à deux chiffres (par exemple, "18")
%te Le jour du mois sous forme de nombre (par exemple, "18")
%tY L'année sous forme de nombre à quatre chiffres (par exemple, "2023")
%ty L'année sous forme de nombre à deux chiffres (par exemple, "23")
%tH L'heure de la journée au format 24 heures (par exemple, "14")
%tI L'heure de la journée au format 12 heures (par exemple, "02")
%tM La minute de l'heure (par exemple, "35")
%tS La seconde de la minute (par exemple, "22")
%tL La milliseconde de la seconde (par exemple, "123")
%tp L'indicateur AM/PM (par exemple, "PM")

Vous pouvez combiner ces modèles pour créer des formats de dates et d'heures plus complexes. Par exemple, le modèle "%tA, %tB %te, %tY" afficherait la date sous la forme "lundi, avril 18, 2023".

Utilisation de printf() pour le formatage des dates

La fonction printf() en Java offre un moyen puissant et flexible de formater les dates et les heures. En utilisant les spécificateurs de format appropriés, vous pouvez contrôler l'apparence et la disposition des informations de date et d'heure affichées dans votre application.

Formatage de base des dates avec printf()

Pour utiliser la fonction printf() pour le formatage des dates, vous pouvez passer l'objet date ou heure en tant qu'argument, ainsi que le spécificateur de format. Voici un exemple :

import java.time.LocalDate;
import java.time.LocalDateTime;

public class DateFormatting {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        LocalDateTime dateTime = LocalDateTime.now();

        System.out.printf("Today's date is: %tD%n", date);
        System.out.printf("The current date and time is: %tF %tT%n", dateTime, dateTime);
    }
}

Sortie :

Today's date is: 04/18/23
The current date and time is: 2023-04-18 14:35:22

Dans cet exemple, nous utilisons le spécificateur de format %tD pour afficher la date dans le format MM/dd/yy, et les spécificateurs de format %tF et %tT pour afficher respectivement la date et l'heure dans les formats yyyy-MM-dd et HH:mm:ss.

Formatage avancé des dates avec printf()

La fonction printf() vous permet également d'utiliser des modèles de formatage de dates et d'heures plus complexes. Par exemple, vous pouvez combiner plusieurs spécificateurs de format pour créer un format de date et d'heure personnalisé :

import java.time.LocalDateTime;

public class DateFormatting {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();

        System.out.printf("Today is %tA, %tB %te, %tY at %tI:%tM:%tS %tp%n",
                dateTime, dateTime, dateTime, dateTime, dateTime, dateTime, dateTime);
    }
}

Sortie :

Today is Tuesday, April 18, 2023 at 02:35:22 PM

Dans cet exemple, nous utilisons une combinaison de spécificateurs de format pour afficher la date et l'heure dans un format plus lisible, y compris le jour de la semaine, le mois, le jour du mois, l'année, l'heure, les minutes, les secondes et l'indicateur AM/PM.

En maîtrisant l'utilisation de la fonction printf() et des spécificateurs de format de dates et d'heures disponibles, vous pouvez créer des affichages de dates et d'heures hautement personnalisés et informatifs dans vos applications Java.

Techniques avancées de formatage des dates

Bien que les techniques de base de formatage des dates utilisant la fonction printf() soient utiles, Java propose également des options de formatage de dates plus avancées qui peuvent être exploitées pour gérer des scénarios de dates et d'heures complexes.

Formatage des dates localisé

L'API de dates et d'heures de Java prend en charge le formatage des dates et des heures localisé, ce qui vous permet d'afficher les dates et les heures dans le format approprié pour une locale spécifique. Vous pouvez utiliser la classe Locale pour spécifier la locale souhaitée, puis utiliser la fonction printf() avec les spécificateurs de format appropriés.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class DateFormatting {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();

        // Format date and time for the French locale
        Locale frenchLocale = Locale.FRANCE;
        String frenchFormat = "%1$ta %1$te %1$tb %1$tY %1$tH:%1$tM:%1$tS";
        System.out.printf(frenchLocale, frenchFormat, dateTime);
        System.out.println();

        // Format date and time for the Chinese locale
        Locale chineseLocale = Locale.CHINA;
        String chineseFormat = "%1$tY年%1$tm月%1$td日 %1$tH:%1$tM:%1$tS";
        System.out.printf(chineseLocale, chineseFormat, dateTime);
    }
}

Sortie :

mardi 18 avr. 2023 14:35:22
2023年04月18日 14:35:22

Dans cet exemple, nous utilisons les constantes Locale.FRANCE et Locale.CHINA pour spécifier respectivement les locales française et chinoise. Nous utilisons ensuite les spécificateurs de format appropriés pour afficher la date et l'heure dans les formats locaux correspondants.

Analyse et formatage des dates avec DateTimeFormatter

La classe DateTimeFormatter en Java offre un moyen plus puissant et flexible d'analyser et de formater les dates et les heures. Cette classe vous permet de définir des modèles de dates et d'heures personnalisés, qui peuvent être utilisés avec la fonction printf() ou d'autres méthodes de manipulation de dates et d'heures.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateFormatting {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();

        // Define a custom date and time pattern
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        // Format the date and time using the custom pattern
        String formattedDateTime = dateTime.format(formatter);
        System.out.printf("Formatted date and time: %s%n", formattedDateTime);
    }
}

Sortie :

Formatted date and time: 2023-04-18 14:35:22

Dans cet exemple, nous créons un objet DateTimeFormatter avec un modèle personnalisé qui affiche la date et l'heure dans le format yyyy-MM-dd HH:mm:ss. Nous utilisons ensuite la méthode format() pour appliquer le formateur à l'objet LocalDateTime et afficher la chaîne résultante.

En exploitant les techniques avancées de formatage des dates proposées par Java, vous pouvez créer des affichages de dates et d'heures hautement personnalisés et localisés qui répondent aux besoins spécifiques de votre application et de ses utilisateurs.

Résumé

Dans ce tutoriel Java complet, vous avez appris à formater les dates en utilisant la méthode printf(). En comprenant les diverses options et techniques de formatage des dates, vous pouvez désormais afficher efficacement les dates et les heures dans vos applications Java, améliorant ainsi l'expérience globale de l'utilisateur et la maintenabilité du code. Grâce aux connaissances acquises, vous pouvez continuer à explorer et maîtriser les fonctionnalités plus avancées de gestion des dates et des heures en Java, renforçant ainsi vos compétences en programmation.