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.
GO TO FULL VERSION