Méthode get() de LocalDate 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

Dans ce laboratoire, vous apprendrez à utiliser la méthode get() de la classe LocalDate en Java pour récupérer des champs spécifiques d'une date. Cette méthode est utile lorsque vous avez uniquement besoin de récupérer un champ spécifique, tel que le jour du mois ou le jour de la semaine, à partir d'une date donnée. Vous pouvez utiliser l'énumération ChronoField pour spécifier quel champ récupérer.

Créer un fichier Java

Dans cette étape, vous allez créer un nouveau fichier Java nommé LocalDateGet.java dans le répertoire de votre projet. Ce fichier contiendra le code pour démontrer la méthode get() de la classe LocalDate.

  1. Ouvrez le terminal dans votre WebIDE. Le répertoire par défaut est ~/project.

  2. Créez le fichier LocalDateGet.java en utilisant la commande touch :

    touch LocalDateGet.java

    Cette commande crée un fichier vide dans votre répertoire courant. Vous pouvez vérifier sa création en listant les fichiers :

    ls

    Vous devriez voir LocalDateGet.java listé dans la sortie.

Ajouter les imports nécessaires et la structure de classe

Maintenant, vous allez ajouter la structure de base à votre fichier LocalDateGet.java, y compris les instructions d'importation requises et la définition de la classe principale. Ces imports sont essentiels pour travailler avec les API de date et d'heure en Java.

  1. Ouvrez le fichier LocalDateGet.java dans l'éditeur de code de la WebIDE.

  2. Ajoutez le code suivant au fichier :

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        public static void main(String[] args) {
            // This is where we will call our methods later
        }
    }
    • java.time.LocalDate : Cette classe représente une date sans fuseau horaire.
    • java.time.temporal.ChronoField : Cette énumération fournit un ensemble standard de champs pour la date et l'heure, tels que DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_YEAR, etc.
    • java.time.temporal.TemporalAccessor : Cette interface fournit un accès en lecture seule à un objet temporel, tel que LocalDate. La méthode get() est définie dans cette interface.
    • java.time.temporal.TemporalField : Cette interface représente un champ de date-heure, tel que l'année, le mois ou le jour du mois. ChronoField implémente cette interface.
  3. Enregistrez le fichier LocalDateGet.java après avoir ajouté le code.

Récupérer le jour du mois

Dans cette étape, vous allez ajouter une méthode à votre classe LocalDateGet qui démontre comment récupérer le jour du mois à partir d'un objet LocalDate en utilisant la méthode get() et ChronoField.DAY_OF_MONTH.

  1. Ouvrez le fichier LocalDateGet.java dans l'éditeur de code de la WebIDE.

  2. Ajoutez la méthode getDayOfMonth() à l'intérieur de la classe LocalDateGet, mais en dehors de la méthode main :

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        public static void getDayOfMonth() {
            // Define the field to retrieve: DAY_OF_MONTH
            TemporalField field = ChronoField.DAY_OF_MONTH;
            // Create a LocalDate object for May 17, 2021
            TemporalAccessor date = LocalDate.of(2021, 5, 17);
    
            // Display the original date
            System.out.println("Date : " + date);
    
            // Retrieve the day of the month using the get() method
            int val = date.get(field);
    
            // Display the retrieved day of the month
            System.out.println("Day of the month: " + val);
            System.out.println(); // Add a blank line for better readability
        }
    
        public static void main(String[] args) {
            // This is where we will call our methods later
        }
    }
    • LocalDate.of(2021, 5, 17) : Crée un objet LocalDate représentant le 17 mai 2021.
    • ChronoField.DAY_OF_MONTH : Spécifie que nous voulons récupérer le jour du mois.
    • date.get(field) : C'est le cœur de l'opération. Elle appelle la méthode get() sur l'objet date, en passant le field (qui est ChronoField.DAY_OF_MONTH) pour extraire la valeur entière correspondante.
  3. Enregistrez le fichier LocalDateGet.java.

  4. Maintenant, appelons cette méthode depuis main pour la voir en action. Modifiez votre méthode main comme suit :

    public static void main(String[] args) {
        getDayOfMonth();
        // Other methods will be called here later
    }
  5. Enregistrez à nouveau le fichier.

  6. Ouvrez le terminal et compilez votre code Java :

    javac LocalDateGet.java

    S'il n'y a pas d'erreurs, la compilation se terminera silencieusement.

  7. Exécutez le programme Java compilé :

    java LocalDateGet

    Vous devriez voir une sortie similaire à celle-ci :

    Date : 2021-05-17
    Day of the month: 17

    Cela confirme que la méthode getDayOfMonth() extrait correctement le jour du mois.

Récupérer le jour de la semaine

Ensuite, vous allez ajouter une autre méthode pour récupérer le jour de la semaine. Le champ ChronoField.DAY_OF_WEEK représente le jour de la semaine, où 1 est lundi, 2 est mardi, et ainsi de suite, jusqu'à 7 pour dimanche.

  1. Ouvrez le fichier LocalDateGet.java dans l'éditeur de code de la WebIDE.

  2. Ajoutez la méthode getDayOfWeek() à l'intérieur de la classe LocalDateGet, en dessous de la méthode getDayOfMonth() :

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        // ... (getDayOfMonth method as defined previously) ...
    
        public static void getDayOfWeek() {
            // Define the field to retrieve: DAY_OF_WEEK
            TemporalField field = ChronoField.DAY_OF_WEEK;
            // Create a LocalDate object for May 17, 2021 (which was a Monday)
            TemporalAccessor date = LocalDate.of(2021, 5, 17);
    
            // Display the original date
            System.out.println("Date : " + date);
    
            // Retrieve the day of the week using the get() method
            int val = date.get(field);
    
            // Display the retrieved day of the week
            System.out.println("Day of the week: " + val);
            System.out.println(); // Add a blank line for better readability
        }
    
        public static void main(String[] args) {
            // ... (main method as defined previously) ...
        }
    }
  3. Enregistrez le fichier LocalDateGet.java.

  4. Maintenant, appelez cette nouvelle méthode depuis votre méthode main. Mettez à jour la méthode main comme suit :

    public static void main(String[] args) {
        getDayOfMonth();
        getDayOfWeek(); // Call the new method
        // Other methods will be called here later
    }
  5. Enregistrez à nouveau le fichier.

  6. Compilez votre code Java depuis le terminal :

    javac LocalDateGet.java
  7. Exécutez le programme Java compilé :

    java LocalDateGet

    Vous devriez voir une sortie similaire à celle-ci :

    Date : 2021-05-17
    Day of the month: 17
    
    Date : 2021-05-17
    Day of the week: 1

    Puisque le 17 mai 2021 était un lundi, et que ChronoField.DAY_OF_WEEK représente le lundi par 1, la sortie Day of the week: 1 est correcte.

Récupérer le jour de l'année

Finalement, vous allez ajouter une méthode pour récupérer le jour de l'année. Le champ ChronoField.DAY_OF_YEAR représente le jour de l'année, où 1 est le 1er janvier, et ainsi de suite.

  1. Ouvrez le fichier LocalDateGet.java dans l'éditeur de code de la WebIDE.

  2. Ajoutez la méthode getDayOfYear() à l'intérieur de la classe LocalDateGet, en dessous de la méthode getDayOfWeek() :

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        // ... (getDayOfMonth and getDayOfWeek methods as defined previously) ...
    
        public static void getDayOfYear() {
            // Define the field to retrieve: DAY_OF_YEAR
            TemporalField field = ChronoField.DAY_OF_YEAR;
            // Create a LocalDate object for May 17, 2021
            TemporalAccessor date = LocalDate.of(2021, 5, 17);
    
            // Display the original date
            System.out.println("Date : " + date);
    
            // Retrieve the day of the year using the get() method
            int val = date.get(field);
    
            // Display the retrieved day of the year
            System.out.println("Day of the year: " + val);
            System.out.println(); // Add a blank line for better readability
        }
    
        public static void main(String[] args) {
            // ... (main method as defined previously) ...
        }
    }
  3. Enregistrez le fichier LocalDateGet.java.

  4. Maintenant, appelez cette dernière méthode depuis votre méthode main. Mettez à jour la méthode main comme suit :

    public static void main(String[] args) {
        getDayOfMonth();
        getDayOfWeek();
        getDayOfYear(); // Call the new method
    }
  5. Enregistrez à nouveau le fichier.

  6. Compilez votre code Java depuis le terminal :

    javac LocalDateGet.java
  7. Exécutez le programme Java compilé :

    java LocalDateGet

    Vous devriez voir la sortie complète, incluant le jour de l'année :

    Date : 2021-05-17
    Day of the month: 17
    
    Date : 2021-05-17
    Day of the week: 1
    
    Date : 2021-05-17
    Day of the year: 137

    Le 17 mai 2021 était le 137e jour de l'année, donc la sortie Day of the year: 137 est correcte.

Résumé

Dans ce lab, vous avez appris à utiliser la méthode get() de la classe Java LocalDate pour récupérer des champs spécifiques à partir de dates. Vous avez créé un programme qui récupère le jour du mois, le jour de la semaine et le jour de l'année pour la même date (17 mai 2021). En utilisant la méthode get() avec l'énumération ChronoField, vous pouvez extraire efficacement des composants de date spécifiques, rendant vos programmes Java plus précis lors de l'utilisation de données temporelles.