Java Datum & Zeit meistern: SimpleDateFormat, aktuelles Datum abrufen und Datumsvergleich
Dieses Tutorial deckt die Grundlagen der Arbeit mit Datum und Uhrzeit in Java ab, einschließlich:
- Anzeigen des aktuellen Datums und der Uhrzeit
- Formatieren und Parsen von Datumsangaben mit
SimpleDateFormat - Vergleichen zweier Daten
Ein Java Date-Objekt repräsentiert die folgenden Komponenten:

- Das Jahr (2 oder 4 Stellen)
- Der Monat (numerisch, dreibuchstabige Abkürzung oder voller Name)
- Der Tag des Monats
- Der Wochentag (z. B. Sun, Mon, Tue)
Computer unterstützen viele weitere datumsbezogene Parameter, die wir in späteren Abschnitten besprechen.
Aktuelles Datum in Java anzeigen
Javas java.util.Date-Klasse bietet eine einfache Möglichkeit, das aktuelle Systemdatum und die Uhrzeit zu erhalten. Nachfolgend ein minimales Beispiel:
import java.util.Date;
class DateExample {
public static void main(String[] args) {
Date current = new Date();
System.out.println(current.toString());
}
}
Ausgabe:
Wed Nov 29 06:36:22 UTC 2017
Die Ausgabe verwendet das Standard-toString()-Format. Um das Datum in einem benutzerdefinierten Layout darzustellen, müssen Sie es explizit formatieren.
SimpleDateFormat: Datumsangaben parsen und formatieren
Java formatiert Daten mithilfe von Mustern, die Buchstaben auf spezifische Datumsbestandteile abbilden. Nachfolgend eine Referenztabelle:
| Buchstabe | Datum- oder Zeitkomponente | Beispiel |
|---|---|---|
| G | Era-Bezeichner | AD |
| y | Jahr | 2018 |
| M | Monat im Jahr | July, Jul, 07 |
| w | Woche im Jahr | 27 |
| W | Woche im Monat | 2 |
| D | Tag im Jahr | 189 |
| d | Tag im Monat | 10 |
| F | Wochentag im Monat | 2 |
| E | Wochentagsname | Tuesday, Tue |
| u | Wochentagnummer (1=Mo … 7=So) | 1 |
| a | AM/PM-Marker | PM |
| H | Stunde am Tag (0-23) | 0 |
| k | Stunde am Tag (1-24) | 24 |
| K | Stunde in am/pm (0-11) | 0 |
| h | Stunde in am/pm (1-12) | 12 |
| m | Minute in der Stunde | 30 |
| s | Sekunde in der Minute | 55 |
| S | Millisekunde | 978 |
| z | Zeitzone | Pacific Standard Time; PST; GMT-08:00 |
| Z | Zeitzonenoffset | -0800 |
| X | Zeitzone | -08, -0800, -08:00 |
Beziehen Sie sich auf diese Tabelle, wann immer Sie einen spezifischen Formatstring konstruieren müssen.
SimpleDateFormat verwenden
- Gewünschtes Format: 2012.10.23 20:20:45 PST → Muster
yyyy.MM.dd HH:mm:ss zzz - Gewünschtes Format: 09:30:00 AM 23-May-2012 → Muster
hh:mm:ss a dd-MMM-yyyy
Tipp: Achten Sie sorgfältig auf Groß-/Kleinschreibung – die Verwendung von M für Monate und m für Minuten ist essenziell.
import java.text.SimpleDateFormat;
import java.util.Date;
class TestDatesFormat {
public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
String pattern = "hh:mm:ss a dd-MMM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
System.out.println(sdf.format(now));
}
}
Ausgabe:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Daten vergleichen

Die zuverlässigste Methode für Datumsvergleich in Java ist compareTo(), die einen negativen Wert zurückgibt, wenn das erste Datum früher ist, null wenn gleich, und einen positiven Wert, wenn später.
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 date1 = sdf.parse("20-08-1981");
Date date2 = sdf.parse("12-10-2012");
System.out.println("Date1 : " + sdf.format(date1));
System.out.println("Date2 : " + sdf.format(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("Date 1 occurs after Date 2");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date 1 occurs before Date 2");
} else {
System.out.println("Both dates are the same");
}
}
}
Ausgabe:
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2
Java
- Spannung und Strom in reaktiven Gleichstromkreisen berechnen
- Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden
- Python: Aktuelle Uhrzeit und Zeitzonendaten einfach abrufen
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java Kommentare: Typen, Verwendung und Best Practices
- Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
- Java Datum und Zeit meistern: Konstruktoren, Methoden & Best Practices
- C++ Datum & Zeit: Umfassender Leitfaden
- Java 10: Zeitbasiertes Release-Versionierung (JEP 322) – Vorhersehbare halbjährliche Updates
- Java 8: Die robuste neue Date/Time-API