Grundlagen der java.time-API
Verwende unveränderliche, klare Datums-/Zeittypen statt Date und Calendar.
Code-Vergleich
✕ Pre-Java 8
// Mutable, confusing, zero-indexed months Calendar cal = Calendar.getInstance(); cal.set(2025, 0, 15); // January = 0! Date date = cal.getTime(); // not thread-safe
✓ Java 8+
LocalDate date = LocalDate.of(
2025, Month.JANUARY, 15);
LocalTime time = LocalTime.of(14, 30);
Instant now = Instant.now();
// immutable, thread-safe
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Unveränderlich
Datums-/Zeitwerte können nicht versehentlich geändert werden.
Klare API
Month.JANUARY statt 0. DayOfWeek.MONDAY statt 2.
Thread-sicher
Keine Synchronisierung nötig — kann frei zwischen Threads geteilt werden.
Alter Ansatz
Date + Calendar
Moderner Ansatz
java.time.*
Seit JDK
8
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Grundlagen der java.time-API
Verfügbar
Weitgehend verfügbar seit JDK 8 (März 2014)
Wie es funktioniert
java.time stellt LocalDate, LocalTime, LocalDateTime, Instant und ZonedDateTime bereit — alle unveränderlich und thread-sicher. Monate sind ab 1 indiziert. Keine Verwirrung mehr durch Calendar.JANUARY = 0.
Zugehörige Dokumentation