Was ist das und wozu braucht man es?
Die Arbeit mit Daten und Zeiten gehört zu den häufigsten Aufgaben in der Java-Programmierung. Die Standardbibliothek java.time (eingeführt in Java 8) bietet eine leistungsstarke und intuitive API für die Verarbeitung von Daten, Zeiten, Zeitzonen und Zeiträumen. Vor Java 8 verwendeten Entwickler oft die Drittanbieter-Bibliothek Joda-Time, die als Vorlage für java.time diente. Beide Bibliotheken lösen die Probleme der alten java.util.Date und java.util.Calendar: Thread-Sicherheit, Unveränderlichkeit von Objekten und praktische Formatierungsmethoden.
Wie installiert man es?
java.time ist in Java 8 und neuer integriert – eine Installation ist nicht erforderlich. Für Joda-Time fügen Sie die Abhängigkeit in Maven hinzu:
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.12.5</version>
</dependency>Für Gradle: implementation 'joda-time:joda-time:2.12.5'.
Grundlegende Funktionen
- LocalDate, LocalTime, LocalDateTime – Arbeit mit Datum/Zeit ohne Zeitzone.
- ZonedDateTime, OffsetDateTime – Berücksichtigung von Zeitzonen.
- Period, Duration – Differenz zwischen Daten und Zeiten.
- DateTimeFormatter – flexible Formatierung und Parsing.
- Instant – Zeitpunkt in UTC.
Java-Codebeispiel
import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateExample {
public static void main(String[] args) {
// Aktuelles Datum
LocalDate today = LocalDate.now();
System.out.println("Heute: " + today);
// Erstellen eines bestimmten Datums
LocalDate specificDate = LocalDate.of(2025, Month.MARCH, 15);
System.out.println("Bestimmtes Datum: " + specificDate);
// Differenz zwischen Daten
Period period = Period.between(specificDate, today);
System.out.println("Differenz: " + period.getYears() + " Jahre, " + period.getMonths() + " Monate, " + period.getDays() + " Tage");
// Formatierung
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
String formatted = today.format(formatter);
System.out.println("Formatiert: " + formatted);
// Parsen eines Strings
LocalDate parsed = LocalDate.parse("01.01.2024", formatter);
System.out.println("Geparst: " + parsed);
// Arbeit mit Zeit und Zonen
ZonedDateTime zoned = ZonedDateTime.now(ZoneId.of("Europe/Moscow"));
System.out.println("Moskauer Zeit: " + zoned);
}
}Wann verwenden
java.time ist die erste Wahl für alle neuen Projekte auf Java 8+. Verwenden Sie es für: Altersberechnung, Fristen, Logs mit Zeitstempeln, Aufgabenplaner, Arbeit mit Kalendern und Zeitzonen. Joda-Time ist nützlich für die Unterstützung alter Projekte oder wenn zusätzliche Funktionen wie Interval oder MutableDateTime benötigt werden. Beide Bibliotheken vereinfachen den Code im Vergleich zum veralteten Calendar erheblich.
Auch in der Bibliothek
Crypto-js für JavaScript (Node.js): Vollständige Anleitung mit Beispielen