Endlich Ordnung im Zeit-Chaos
Vor Java 8 war die Arbeit mit Datum und Uhrzeit oft ein Albtraum. Die alten Klassen `java.util.Date` und `java.util.Calendar` waren nicht threadsicher, schwer zu bedienen und führten oft zu Fehlern. Mit der Einführung der Date-Time API (JSR-310) wurde alles einfacher.
1. LocalDate, LocalTime und LocalDateTime
Diese Klassen sind für die meisten Anwendungsfälle gedacht, bei denen keine Zeitzonen benötigt werden. Sie sind immutable (unveränderlich), was sie sicher für Multithreading macht.
// Beispiel: Heutiges Datum erstellen
LocalDate heute = LocalDate.now();
LocalDate geburtstag = LocalDate.of(1995, Month.MAY, 23);
// Zeit hinzufügen
LocalDate nächsteWoche = heute.plusWeeks(1);
2. ZonedDateTime
Wenn du mit verschiedenen Standorten arbeitest, ist ZonedDateTime dein bester Freund. Es
speichert Datum und Uhrzeit inklusive der Zeitzone (z.B. "Europe/Berlin").
ZonedDateTime jetztInBerlin = ZonedDateTime.now(ZoneId.of("Europe/Berlin"));
3. Zeiträume: Period und Duration
Ein großer Vorteil ist die Unterscheidung zwischen datumsbasierter Zeit (`Period`) und zeitbasierter Zeit (`Duration`).
- Period: Jahre, Monate, Tage (z.B. "2 Jahre und 3 Tage").
- Duration: Sekunden, Nanosekunden (z.B. "300 Sekunden").
"Verwende immer die neue API, wenn du ein Projekt ab Java 8 startest. Es gibt keinen Grund mehr, die alten Date-Klassen zu nutzen."