Jaar, maand en dag uit de datum halen in Java

1. Overzicht

In deze korte zelfstudie bekijken we hoe u het jaar, maand en dag van een gegeven Datum in Java.

We zullen bekijken hoe we deze waarden kunnen extraheren met behulp van de erfenis java.util.Date class en ook door de nieuwe datum-tijdbibliotheek van Java 8 te gebruiken.

In Java 8 werd om een ​​aantal goede redenen een geheel nieuwe datum- en tijdbibliotheek geïntroduceerd. Naast andere voordelen, de nieuwe bibliotheek biedt een betere API voor bewerkingen zoals extraheren Jaar, Maand, Dag etc. van gegeven Datum.

En als u op zoek bent naar een meer gedetailleerd artikel over de nieuwe datum-tijdbibliotheek, kijk dan hier.

2. Java 7 gebruiken

Voor een gegeven java.util.Date om individuele velden te extraheren, zoals Jaar, Maand, Dag enz. de eerste stap die we moeten doen, is het converteren naar Kalender voorbeeld:

Datum datum = // de datuminstantie Kalenderkalender = Calendar.getInstance (); calendar.setTime (datum);

Zodra we een Kalender we kunnen bijvoorbeeld direct zijn krijgen methode en geef het specifieke veld op dat we willen extraheren.

We kunnen constanten gebruiken die aanwezig zijn in Kalender om specifieke velden te extraheren.

2.1. Jaar krijgen

Om het jaar, we kunnen een beroep doen krijgen door te passeren Kalenderjaar als argument:

calendar.get (Calendar.YEAR);

2.2. Krijg maand

Evenzo om het maand, we kunnen een beroep doen krijgen door te passeren Kalendermaand als argument:

calendar.get (Calendar.MONTH);

Houd er rekening mee dat maanden in Kalender zijn nul-geïndexeerd; voor januari retourneert deze methode 0.

2.3. Krijg een dag

Ten slotte, om het dag, roepen we aan krijgen door te passeren Agenda.DAY_OF_MONTH als argument:

calendar.get (Calendar.DAY_OF_MONTH);

3. Java 8 gebruiken

De nieuwe java.time pakket bevat een aantal klassen die kunnen worden gebruikt voor representatie Datum.

Elke klasse verschilt door de aanvullende informatie die wordt opgeslagen naast de Datum.

De basis LocalDate bevat alleen de datuminformatie, while LocalDateTime bevat zowel datum- als tijdinformatie.

Evenzo meer geavanceerde klassen zoals OffsetDateTime en ZonedDateTime bevat aanvullende informatie over offset van UTC en informatie over tijdzone respectievelijk.

In elk geval ondersteunen al deze klassen directe methoden om jaar-, maand- en datuminformatie te extraheren.

Laten we deze methoden onderzoeken om informatie uit te halen een LocalDate instantienaam localDate.

3.1. Jaar krijgen

Extraheren Jaar, LocalDate biedt gewoon een getYear methode:

localDate.getYear ();

3.2. Krijg maand

Evenzo om te extraheren Maand, we gebruiken getMonthValue API:

localDate.getMonthValue ();

in tegenstelling tot Kalender, Maanden in LocalDate worden geïndexeerd vanaf 1; voor januari komt dit terug op 1.

3.3. Krijg een dag

Eindelijk, om uit te pakken Dag, we hebben getDayOfMonth methode:

localDate.getDayOfMonth ();

4. Conclusie

In deze korte zelfstudie hebben we onderzocht hoe u gehele getallen kunt extraheren van Jaar, Maand en Dag van Datum in Java.

We hebben laten zien hoe u deze waarden kunt extraheren met behulp van de oude Datum en Kalender klassen evenals de nieuwe datum-tijdbibliotheek van Java8.

De volledige broncode voor fragmenten die in deze tutorial worden gebruikt, is beschikbaar op Github.