Comment obtenir la date actuelle et la date suivante avec LocalDate en Java

JavaBeginner
Pratiquer maintenant

Introduction

Ce tutoriel vous guidera à travers la récupération de la date actuelle et le calcul de la date suivante en utilisant la classe LocalDate en Java. L'API Java Time, introduite en Java 8, offre des capacités complètes de gestion des dates et des heures. À la fin de ce tutoriel, vous comprendrez comment utiliser LocalDate pour effectuer efficacement des opérations de base sur les dates.

Comprendre l'API Java Time et LocalDate

Avant de commencer à coder, apprenons-en davantage sur la classe LocalDate et pourquoi elle est utile pour gérer les dates dans les applications Java.

Qu'est-ce que l'API Java Time ?

Java 8 a introduit l'API Java Time dans le package java.time pour remédier aux limitations des anciennes classes de date et d'heure. Cette API offre une approche plus claire et plus intuitive de la gestion des dates et des heures.

Introduction à LocalDate

La classe LocalDate représente une date sans composante temporelle (année, mois, jour). Elle est immuable, thread-safe et suit le système de calendrier ISO-8601.

Quelques avantages clés de l'utilisation de LocalDate incluent :

  • Elle fournit une séparation claire entre les concepts de date, d'heure et de date-heure
  • Elle offre des méthodes intuitives pour la manipulation des dates
  • Elle dispose d'un support intégré pour différents formats de date
  • Elle gère correctement les calculs de date

Créons un nouveau fichier Java pour explorer la fonctionnalité de LocalDate.

  1. Dans le WebIDE, cliquez sur le panneau Explorer (l'icône qui ressemble à des pages dans la barre latérale gauche)
  2. Faites un clic droit dans le panneau de l'explorateur de fichiers et sélectionnez "New File" (Nouveau fichier)
  3. Nommez le fichier DateExample.java et cliquez sur "OK"
  4. Copiez le modèle de code de base suivant dans le fichier :
public class DateExample {
    public static void main(String[] args) {
        // We will add our date code here
        System.out.println("Learning about LocalDate in Java");
    }
}
  1. Enregistrez le fichier en appuyant sur Ctrl+S ou en sélectionnant File > Save (Fichier > Enregistrer) dans le menu

Maintenant que nous avons créé notre fichier Java, nous allons ajouter du code pour travailler avec la date actuelle à l'étape suivante.

Récupération de la date actuelle avec LocalDate

Dans cette étape, nous allons modifier notre programme Java pour récupérer et afficher la date actuelle en utilisant la classe LocalDate.

Importer la classe LocalDate

Tout d'abord, nous devons importer la classe LocalDate du package java.time. Ouvrez le fichier DateExample.java et ajoutez l'instruction d'importation en haut :

import java.time.LocalDate;

public class DateExample {
    public static void main(String[] args) {
        // We will add our date code here
        System.out.println("Learning about LocalDate in Java");
    }
}

Utilisation de la méthode LocalDate.now()

La classe LocalDate fournit une méthode statique appelée now() qui renvoie la date actuelle. Modifions notre code pour récupérer et afficher la date actuelle :

import java.time.LocalDate;

public class DateExample {
    public static void main(String[] args) {
        // Get the current date
        LocalDate currentDate = LocalDate.now();

        // Display the current date
        System.out.println("Current date: " + currentDate);
    }
}

Compilation et exécution du programme

Maintenant, compilons et exécutons notre programme :

  1. Ouvrez un terminal dans le WebIDE (Terminal > New Terminal (Terminal > Nouveau terminal) dans le menu)
  2. Naviguez vers le répertoire du projet si nécessaire :
    cd /home/labex/project
  3. Compilez le programme Java :
    javac DateExample.java
  4. Exécutez le programme compilé :
    java DateExample

Vous devriez voir une sortie similaire à :

Current date: 2023-04-12

La date réelle reflétera la date actuelle lorsque vous exécuterez le programme.

Comprendre le format de sortie

La représentation sous forme de chaîne par défaut d'un objet LocalDate suit le format ISO-8601 : YYYY-MM-DD. Il s'agit d'une norme internationale pour représenter les dates.

Par exemple, 2023-04-12 représente le 12 avril 2023.

Vous avez réussi à récupérer et à afficher la date actuelle en utilisant la classe LocalDate. Dans l'étape suivante, nous allons apprendre à calculer la date suivante.

Calcul de la date suivante

Maintenant que nous pouvons récupérer la date actuelle, nous allons apprendre à calculer la date suivante en ajoutant des jours à un objet LocalDate.

Comprendre la manipulation de dates avec LocalDate

La classe LocalDate fournit plusieurs méthodes pour la manipulation de dates, notamment :

  • plusDays(long days): Ajoute le nombre de jours spécifié
  • plusWeeks(long weeks): Ajoute le nombre de semaines spécifié
  • plusMonths(long months): Ajoute le nombre de mois spécifié
  • plusYears(long years): Ajoute le nombre d'années spécifié

Il existe également des méthodes minus correspondantes pour la soustraction.

Améliorons notre code pour calculer et afficher la date suivante :

import java.time.LocalDate;

public class DateExample {
    public static void main(String[] args) {
        // Get the current date
        LocalDate currentDate = LocalDate.now();

        // Calculate the next date by adding one day
        LocalDate nextDate = currentDate.plusDays(1);

        // Display both dates
        System.out.println("Current date: " + currentDate);
        System.out.println("Next date: " + nextDate);
    }
}

Compilation et exécution du programme mis à jour

Compilons et exécutons notre programme mis à jour :

  1. Assurez-vous d'avoir enregistré les modifications apportées à DateExample.java
  2. Dans le terminal, compilez le programme Java :
    javac DateExample.java
  3. Exécutez le programme compilé :
    java DateExample

Vous devriez voir une sortie similaire à :

Current date: 2023-04-12
Next date: 2023-04-13

Encore une fois, les dates réelles refléteront la date actuelle lorsque vous exécuterez le programme.

Exploration d'autres manipulations de dates

Améliorons davantage notre programme pour démontrer d'autres méthodes de manipulation de dates :

import java.time.LocalDate;

public class DateExample {
    public static void main(String[] args) {
        // Get the current date
        LocalDate currentDate = LocalDate.now();

        // Calculate various future dates
        LocalDate nextDate = currentDate.plusDays(1);
        LocalDate nextWeek = currentDate.plusWeeks(1);
        LocalDate nextMonth = currentDate.plusMonths(1);
        LocalDate nextYear = currentDate.plusYears(1);

        // Display all dates
        System.out.println("Current date: " + currentDate);
        System.out.println("Next date: " + nextDate);
        System.out.println("Date after one week: " + nextWeek);
        System.out.println("Date after one month: " + nextMonth);
        System.out.println("Date after one year: " + nextYear);
    }
}

Compilez et exécutez le programme à nouveau :

javac DateExample.java
java DateExample

La sortie affichera la date actuelle, la date suivante et les dates après une semaine, un mois et un an :

Current date: 2023-04-12
Next date: 2023-04-13
Date after one week: 2023-04-19
Date after one month: 2023-05-12
Date after one year: 2024-04-12

Concept important : Immuabilité

Notez que nous avons affecté le résultat de plusDays() à une nouvelle variable. C'est parce que les objets LocalDate sont immuables, ce qui signifie que leurs valeurs ne peuvent pas être modifiées après leur création. Les méthodes comme plusDays() ne modifient pas l'objet d'origine ; au lieu de cela, elles renvoient un nouvel objet avec la valeur mise à jour.

Cette immuabilité est une caractéristique importante qui rend les objets LocalDate thread-safe et plus prévisibles dans les applications complexes.

Extraction des composants de la date

Dans cette étape, nous allons apprendre à extraire des composants individuels d'un objet LocalDate, tels que le jour, le mois, l'année et le jour de la semaine.

Méthodes d'extraction des composants de la date

La classe LocalDate fournit plusieurs méthodes pour extraire des composants spécifiques d'une date :

  • getDayOfMonth(): Renvoie le jour du mois (1-31)
  • getMonthValue(): Renvoie le mois sous forme de nombre (1-12)
  • getMonth(): Renvoie le mois sous forme de constante enum
  • getYear(): Renvoie l'année
  • getDayOfWeek(): Renvoie le jour de la semaine sous forme de constante enum

Créons un nouveau fichier pour explorer ces méthodes :

  1. Dans le WebIDE, créez un nouveau fichier nommé DateComponents.java
  2. Ajoutez le code suivant au fichier :
import java.time.LocalDate;
import java.time.Month;
import java.time.DayOfWeek;

public class DateComponents {
    public static void main(String[] args) {
        // Get the current date
        LocalDate currentDate = LocalDate.now();

        // Extract date components
        int day = currentDate.getDayOfMonth();
        int monthValue = currentDate.getMonthValue();
        Month month = currentDate.getMonth();
        int year = currentDate.getYear();
        DayOfWeek dayOfWeek = currentDate.getDayOfWeek();

        // Display the components
        System.out.println("Current date: " + currentDate);
        System.out.println("Day of month: " + day);
        System.out.println("Month (number): " + monthValue);
        System.out.println("Month (name): " + month);
        System.out.println("Year: " + year);
        System.out.println("Day of week: " + dayOfWeek);
    }
}
  1. Enregistrez le fichier en appuyant sur Ctrl+S

Compilation et exécution du programme

Maintenant, compilons et exécutons notre nouveau programme :

  1. Dans le terminal, compilez le programme Java :
    javac DateComponents.java
  2. Exécutez le programme compilé :
    java DateComponents

Vous devriez voir une sortie similaire à :

Current date: 2023-04-12
Day of month: 12
Month (number): 4
Month (name): APRIL
Year: 2023
Day of week: WEDNESDAY

Création d'une date spécifique

En plus d'obtenir la date actuelle, nous pouvons créer un objet LocalDate représentant une date spécifique en utilisant la méthode of(). Améliorons notre programme pour créer une date spécifique :

import java.time.LocalDate;
import java.time.Month;
import java.time.DayOfWeek;

public class DateComponents {
    public static void main(String[] args) {
        // Get the current date
        LocalDate currentDate = LocalDate.now();

        // Create a specific date
        LocalDate specificDate = LocalDate.of(2025, 12, 25);

        // Extract date components from the current date
        int day = currentDate.getDayOfMonth();
        int monthValue = currentDate.getMonthValue();
        Month month = currentDate.getMonth();
        int year = currentDate.getYear();
        DayOfWeek dayOfWeek = currentDate.getDayOfWeek();

        // Display the current date components
        System.out.println("Current date: " + currentDate);
        System.out.println("Day of month: " + day);
        System.out.println("Month (number): " + monthValue);
        System.out.println("Month (name): " + month);
        System.out.println("Year: " + year);
        System.out.println("Day of week: " + dayOfWeek);

        // Display the specific date
        System.out.println("\nSpecific date: " + specificDate);
        System.out.println("Day of week for specific date: " + specificDate.getDayOfWeek());
    }
}

Compilez et exécutez le programme mis à jour :

javac DateComponents.java
java DateComponents

La sortie inclura désormais des informations sur la date spécifique :

Current date: 2023-04-12
Day of month: 12
Month (number): 4
Month (name): APRIL
Year: 2023
Day of week: WEDNESDAY

Specific date: 2025-12-25
Day of week for specific date: THURSDAY

Vous avez maintenant appris à extraire des composants d'un objet LocalDate et à créer des dates pour des jours spécifiques. Ces capacités sont particulièrement utiles lors de la création d'applications qui doivent effectuer des opérations basées sur la date ou afficher des informations de date dans différents formats.

Résumé

Dans ce tutoriel, vous avez appris à travailler avec les dates en Java en utilisant la classe LocalDate de la Java Time API. Voici un résumé de ce que vous avez accompli :

  1. Création d'un programme Java pour récupérer la date actuelle en utilisant LocalDate.now()
  2. Calcul de dates futures en ajoutant des jours, des semaines, des mois et des années à une date
  3. Extraction de composants d'une date, tels que le jour, le mois, l'année et le jour de la semaine
  4. Création d'une date spécifique en utilisant la méthode LocalDate.of()

Ces opérations de base sur les dates constituent le fondement de fonctionnalités plus complexes basées sur les dates dans les applications Java. La Java Time API fournit un ensemble complet de classes et de méthodes pour travailler avec les dates et les heures, ce qui facilite la gestion des exigences liées aux dates dans vos applications.

Voici quelques applications courantes des connaissances que vous avez acquises :

  • Calcul des dates d'échéance pour les tâches ou les paiements
  • Planification d'événements et de rendez-vous
  • Détermination du jour de la semaine pour une date spécifique
  • Suivi des périodes de temps entre les événements
  • Formatage des dates pour l'affichage dans les interfaces utilisateur

Au fur et à mesure que vous poursuivez votre parcours Java, vous pouvez explorer des fonctionnalités plus avancées de la Java Time API, telles que le travail avec les fuseaux horaires, le formatage des dates pour différentes régions et l'exécution de calculs de dates complexes.