Hoe de dag van de week bepalen door een specifieke datum in Java door te geven?

1. Overzicht

In deze korte tutorial zullen we zien hoe we de dag van de week kunnen extraheren als een getal en als tekst van een Java-datum.

2. Probleem

Bedrijfslogica heeft vaak de dag van de week nodig. Waarom? Ten eerste verschillen werktijden en serviceniveaus tussen werkdagen en weekenden. Daarom is het voor veel systemen noodzakelijk om de dag als nummer te krijgen. Maar misschien hebben we de dag ook nodig als tekst om weer te geven.

Dus, hoe halen we de dag van de week uit datums op Java?

3. Oplossing met java.util.Date

java.util.Date is de Java-datumklasse sinds Java 1.0. Code die begon met Java-versie 7 of lager, gebruikt waarschijnlijk deze klasse.

3.1. Dag van de week als een nummer

Eerste, we extraheren de dag als een getal gebruik makend van java.util.Calendar:

openbare statische int getDayNumberOld (Datum datum) {Calendar cal = Calendar.getInstance (); cal.setTime (datum); return cal.get (Calendar.DAY_OF_WEEK); }

Het resultaat nummer varieert van 1 (zondag) tot 7 (zaterdag). Kalender definieert hiervoor constanten: Kalender ZONDAGKalender ZATERDAG.

3.2. Dag van de week als tekst

Nu we extraheer de dag als tekst. We passeren een Locale om de taal te bepalen:

openbare statische String getDayStringOld (Datum datum, locale landinstelling) {DateFormat formatter = nieuwe SimpleDateFormat ("EEEE", locale); retourneer formatter.format (datum); }

Dit geeft de volledige dag terug in uw taal, zoals "maandag" in het Engels of "Montag" in het Duits.

4. Oplossing met java.time.LocalDate

Java 8 heeft de afhandeling van datum en tijd gereviseerd en geïntroduceerd java.time.LocalDate voor data. Daarom Java-projecten die alleen op Java-versie 8 of hoger draaien, zouden deze klasse moeten gebruiken!

4.1. Dag van de week als een nummer

Het extraheren van de dag als een getal is triviaal nu:

openbare statische int getDayNumberNew (LocalDate date) {DayOfWeek day = date.getDayOfWeek (); return day.getValue (); }

Het resulterende aantal varieert nog steeds van 1 tot 7. Maar deze keer Maandag is 1 en zondag is 7! De dag van de week heeft zijn eigen dag opsommingDag van de week. Zoals verwacht, de opsomming waarden zijn MAANDAGZONDAG.

4.2. Dag van de week als tekst

Nu extraheren we de dag weer als tekst. We passeren ook een Locale:

openbare statische String getDayStringNew (LocalDate datum, locale locale) {DayOfWeek day = date.getDayOfWeek (); return day.getDisplayName (TextStyle.FULL, locale); }

Net als bij java.util.Date, dit komt de hele dag terug in de gekozen taal.

5. Conclusie

In dit artikel hebben we de dag van de week geëxtraheerd uit Java-datums. We hebben gezien hoe we zowel een getal als een tekst kunnen retourneren met java.util.Date en java.time.LocalDate.

Zoals altijd is de code beschikbaar op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found