Java Datum & Tijd Beheersen: SimpleDateFormat, Huidige Datum Ophalen en Datum Vergelijking
Deze tutorial behandelt de essentiële aspecten van werken met datums en tijden in Java, inclusief:
- Huidige datum en tijd weergeven
- Datums formatteren en parsen met
SimpleDateFormat - Twee datums vergelijken
Een Java Date object vertegenwoordigt de volgende componenten:

- Het jaar (2 of 4 cijfers)
- De maand (numeriek, drie-letter afkorting of volledige naam)
- De dag van de maand
- De dag van de week (bijv. Zo, Ma, Di)
Computers ondersteunen veel extra datum-gerelateerde parameters, die we in latere secties bespreken.
Huidige Datum Weergeven in Java
Java's java.util.Date klasse biedt een eenvoudige manier om de huidige systeemdatum en -tijd op te halen. Hieronder is een minimaal voorbeeld:
import java.util.Date;
class DateExample {
public static void main(String[] args) {
Date huidig = new Date();
System.out.println(huidig.toString());
}
}
Output:
Wed Nov 29 06:36:22 UTC 2017
De output gebruikt het standaard toString() formaat. Om de datum in een aangepaste layout te presenteren, moet je hem expliciet formatteren.
SimpleDateFormat: Datums Parsen en Formatteren
Java formatteert datums met patroonstrings die letters mappen op specifieke datumcomponenten. Hieronder is een referentietabel:
| Letter | Datum of Tijd Component | Voorbeeld |
|---|---|---|
| G | Era aanduiding | AD |
| y | Jaar | 2018 |
| M | Maand in jaar | July, Jul, 07 |
| w | Week in jaar | 27 |
| W | Week in maand | 2 |
| D | Dag in jaar | 189 |
| d | Dag in maand | 10 |
| F | Dag van week in maand | 2 |
| E | Dagnaam in week | Tuesday, Tue |
| u | Dagnummer van week (1=Ma … 7=Zo) | 1 |
| a | AM/PM marker | PM |
| H | Uur in dag (0-23) | 0 |
| k | Uur in dag (1-24) | 24 |
| K | Uur in am/pm (0-11) | 0 |
| h | Uur in am/pm (1-12) | 12 |
| m | Minuut in uur | 30 |
| s | Seconde in minuut | 55 |
| S | Milliseconde | 978 |
| z | Tijdzone | Pacific Standard Time; PST; GMT-08:00 |
| Z | Tijdzone offset | -0800 |
| X | Tijdzone | -08, -0800, -08:00 |
Raadpleeg deze tabel wanneer je een specifieke formaatstring moet construeren.
SimpleDateFormat Gebruiken
De SimpleDateFormat klasse laat je een patroon definiëren om datums te formatteren of parsen. Bijvoorbeeld:
- Gewenst formaat: 2012.10.23 20:20:45 PST → patroon
yyyy.MM.dd HH:mm:ss zzz - Gewenst formaat: 09:30:00 AM 23-May-2012 → patroon
hh:mm:ss a dd-MMM-yyyy
Tip: Let goed op hoofdletters – M voor maanden en m voor minuten is essentieel.
import java.text.SimpleDateFormat;
import java.util.Date;
class TestDatesFormat {
public static void main(String[] args) {
Date nu = new Date();
System.out.println(nu);
String patroon = "hh:mm:ss a dd-MMM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(patroon);
System.out.println(sdf.format(nu));
}
}
Output:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Datums Vergelijken

De meest betrouwbare methode voor datumvergelijking in Java is compareTo(), wat een negatieve waarde retourneert als de eerste datum eerder is, nul als gelijk, en een positieve waarde als later.
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
class TestDatesCompare {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date datum1 = sdf.parse("20-08-1981");
Date datum2 = sdf.parse("12-10-2012");
System.out.println("Datum1 : " + sdf.format(datum1));
System.out.println("Datum2 : " + sdf.format(datum2));
if (datum1.compareTo(datum2) > 0) {
System.out.println("Datum 1 valt na Datum 2");
} else if (datum1.compareTo(datum2) < 0) {
System.out.println("Datum 1 valt voor Datum 2");
} else {
System.out.println("Beide datums zijn hetzelfde");
}
}
}
Output:
Datum1 : 20-08-1981 Datum2 : 12-10-2012 Datum 1 valt voor Datum 2
Java
- Spanning en stroom berekenen in reactieve DC circuits
- Uitgebreide Gids voor Datum en Tijd in C++
- Huidige datum en tijd ophalen in Python: een praktische gids
- Python: Huidige tijd en tijdzonedata eenvoudig ophalen
- Datums & Tijden in Python Beheersen: Een Praktische Gids
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Datum en Tijd Onder de Knie: Constructors, Methods & Best Practices
- Java 10 introduceert Time-Based Release Versioning voor voorspelbare halfjaarlijkse updates
- Java 8: De Robuuste Nieuwe Date/Time API