CodeGym /Java Blog /Random-IT /Classe Java LocalDate
John Squirrels
Livello 41
San Francisco

Classe Java LocalDate

Pubblicato nel gruppo Random-IT
La classe Java LocalDate è immutabile, il che significa che una volta creata un'istanza, non è possibile modificarla. LocalDate fornisce molti metodi utili per manipolare ed eseguire query sulle date, ad esempio aggiungere o sottrarre giorni, mesi o anni, ottenere il giorno della settimana o verificare se una data è precedente o successiva a un'altra data.

Esempio di data locale

Iniziamo con un semplice esempio che crea un'istanza LocalDate per la data corrente e la stampa sulla console:
import java.time.LocalDate;

public class LocalDateExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("Today's date: " + today);
    }
}
In questo esempio importiamo la classe LocalDate dal pacchetto java.time e creiamo una nuova istanza di LocalDate chiamata today utilizzando il metodo statico now() . Questo metodo restituisce un oggetto LocalDate che rappresenta la data corrente in base all'orologio di sistema nel fuso orario predefinito. Stampiamo quindi la data corrente sulla console utilizzando il metodo println() dell'oggetto System.out . L'output sarà simile a questo:

Produzione

Data odierna: 01-05-2023

Costruttori LocalDate

Oltre al metodo now() , LocalDate fornisce diversi altri costruttori che consentono di creare istanze LocalDate da diverse origini. Ad esempio, puoi creare un LocalDate da un anno, mese e giorno specifici:
import java.time.LocalDate;

public class LocalDateConstructorExample {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2023, 5, 1);

        System.out.println("Date 1: " + date1);
    }
}
Questo codice crea una nuova istanza LocalDate denominata date1 con l'anno 2023, il mese di maggio (rappresentato dal valore 5) e il giorno 1. L'output sarà:

Produzione

Data 1: 01-05-2023

Manipolazione della data locale

Una delle funzionalità più utili di LocalDate è la capacità di manipolare le date. Ad esempio, puoi aggiungere o sottrarre giorni, mesi o anni utilizzando i metodi più e meno :
import java.time.LocalDate;

public class LocalDateManipulationExample {
    public static void main(String[] args) {

        LocalDate date3 = LocalDate.parse("2023-05-01");
        LocalDate date4 = date3.plusDays(1);
        LocalDate date5 = date3.minusMonths(1);
        LocalDate date6 = date3.plusYears(1);

        System.out.println("Date 3: " + date3);
        System.out.println("Date 4: " + date4);
        System.out.println("Date 5: " + date5);
        System.out.println("Date 6: " + date6);
   }
}
In questo esempio, creiamo innanzitutto una nuova istanza LocalDate denominata date3 analizzando la stringa "2023-05-01". Creiamo quindi tre nuove istanze LocalDate chiamate date4 , date5 e date6 aggiungendo o sottraendo giorni, mesi o anni da date3 . L'output sarà:
Data 3: 01-05-2023 Data 4: 02-05-2023 Data 5: 01-04-2023 Data 6: 01-05-2024

Confronto tra date locali

LocalDate fornisce anche metodi per confrontare le date. Puoi verificare se due istanze di LocalDate sono uguali o se una è prima o dopo l'altra utilizzando i metodi equals() , isBefore() e isAfter() :
import java.time.LocalDate;

public class LocalDateCompareExample {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.parse("2023-05-01");
        LocalDate date2 = LocalDate.parse("2023-05-02");

        System.out.println("Are the dates equal? " + date1.equals(date2));
        System.out.println("Is date1 before date2? " + date1.isBefore(date2));
        System.out.println("Is date2 after date1? " + date2.isAfter(date1));
    }
}
In questo esempio creiamo due istanze LocalDate chiamate date1 e date2 e quindi utilizziamo i metodi equals() , isBefore() e isAfter() per confrontarle. L'output sarà in forma booleana, ovvero true o false :
Le date sono uguali? false La data1 è prima della data2? true La data2 è successiva alla data1? VERO

LocalDateTime

Se devi rappresentare una data e un'ora, puoi utilizzare la classe LocalDateTime , che è simile a LocalDate ma include un componente temporale. LocalDateTime fornisce metodi per manipolare ed eseguire query su entrambe le parti di data e ora. Ecco un esempio di creazione di un'istanza LocalDateTime :
import java.time.LocalDateTime;

public class LocalDateTimeExample {
    public static void main(String[] args) {
        LocalDateTime datetime = LocalDateTime.now();
        System.out.println("Current date and time: " + datetime);
    }
}
Questo codice importa la classe LocalDateTime e crea una nuova istanza chiamata datetime utilizzando il metodo now() . L'output sarà simile a questo:
Data e ora attuali: 2023-05-01T15:30:00.123456789
Nota: la "T" nell'output indica l'inizio del timestamp.

Conclusione

La classe Java LocalDate è utile per lavorare con le date in Java. Fornisce molti metodi per manipolare e interrogare le date, semplificando l'aggiunta o la sottrazione di giorni, mesi o anni, il controllo se una data è precedente o successiva a un'altra data e altro ancora. Se è necessario utilizzare insieme date e ore, è possibile utilizzare invece la classe LocalDateTime . Sentiti libero di sperimentare questa lezione e condividere i tuoi risultati con noi! Torna a questo post ogni volta che ti senti bloccato. Buona codifica!
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION