Estrazione di anno, mese e giorno dalla data in Java

1. Panoramica

In questo breve tutorial, vedremo come estrarre l' anno , il mese e il giorno da una determinata data in Java.

Vedremo come estrarre questi valori utilizzando la classe legacy java.util.Date e anche utilizzando la nuova libreria data-ora di Java 8.

In Java 8, è stata introdotta un'intera nuova libreria di data e ora per una serie di buoni motivi. Oltre ad altri vantaggi, la nuova libreria fornisce un'API migliore per operazioni come l'estrazione di anno , mese , giorno ecc. Da una determinata data .

E, se stai cercando un articolo più dettagliato sulla nuova libreria data-ora, dai un'occhiata qui.

2. Utilizzo di Java 7

Per un dato java.util.Date per estrarre singoli campi come Anno , Mese , Giorno ecc. Il primo passo che dobbiamo fare è convertirlo in un'istanza di Calendar :

Date date = // the date instance Calendar calendar = Calendar.getInstance(); calendar.setTime(date);

Una volta che abbiamo un'istanza di Calendar , possiamo richiamare direttamente il suo metodo get e fornire il campo specifico che vogliamo estrarre.

Possiamo usare le costanti presenti in Calendar per estrarre campi specifici.

2.1. Ottieni anno

Per estrarre l' anno, possiamo invocare get passando Calendar.YEAR come argomento:

calendar.get(Calendar.YEAR);

2.2. Ottieni mese

Allo stesso modo per estrarre il mese, possiamo invocare get passando Calendar.MONTH come argomento:

calendar.get(Calendar.MONTH);

Tieni presente che i mesi in Calendar sono indicizzati a zero; per gennaio questo metodo restituirà 0.

2.3. Ottieni giorno

Infine, per estrarre il giorno, invochiamo get passando Calendar.DAY_OF_MONTH come argomento:

calendar.get(Calendar.DAY_OF_MONTH);

3. Utilizzo di Java 8

Il nuovo pacchetto java.time contiene un numero di classi che possono essere utilizzate per rappresentare Date .

Ogni classe differisce per le informazioni aggiuntive che memorizza oltre alla data .

Il LocalDate di base contiene solo le informazioni sulla data, mentre LocalDateTime contiene le informazioni sulla data e sull'ora.

Allo stesso modo, classi più avanzate come OffsetDateTime e ZonedDateTime contengono informazioni aggiuntive sull'offset rispetto a UTC e informazioni sul fuso orario rispettivamente.

In ogni caso, tutte queste classi supportano metodi diretti per estrarre informazioni su Anno, Mese e Data.

Esploriamo questi metodi per estrarre informazioni da un nome di istanza LocalDate localDate .

3.1. Ottieni anno

Per estrarre Year, LocalDate fornisce semplicemente un metodo getYear :

localDate.getYear();

3.2. Ottieni mese

Allo stesso modo, per estrarre Month, utilizziamo l' API getMonthValue :

localDate.getMonthValue();

A differenza di Calendar , i mesi in LocalDate sono indicizzati da 1; per gennaio questo tornerà 1.

3.3. Ottieni giorno

Infine, per estrarre Day, abbiamo il metodo getDayOfMonth :

localDate.getDayOfMonth();

4. Conclusione

In questo breve tutorial, abbiamo esplorato come estrarre i valori interi di Anno , Mese e Giorno dalla Data in Java.

Abbiamo mostrato come estrarre questi valori utilizzando le vecchie classi Date e Calendar , nonché la nuova libreria data-ora di Java8.

Il codice sorgente completo per i frammenti utilizzati in questo tutorial è disponibile su Github.