Arbeit mit Daten in Java: Überblick über Bibliotheken und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeit mit Daten in Java: Überblick über Bibliotheken und Werkzeuge



Die Arbeit mit Daten und Zeit ist eine der häufigsten Aufgaben in der Java-Entwicklung. Lange Zeit verursachten die Standardklassen java.util.Date und java.util.Calendar aufgrund ihrer Unübersichtlichkeit, Veränderlichkeit und Probleme mit der Thread-Sicherheit zahlreiche Kritik. Mit dem Erscheinen von Java 8 hat sich die Situation jedoch grundlegend geändert. In diesem Überblick betrachten wir die wichtigsten Bibliotheken für die Arbeit mit Daten in Java, ihre Stärken und Anwendungsbeispiele.



1. java.time (JSR-310) — Standard-API



Ab Java 8 ist das Paket java.time das wichtigste Werkzeug für die Arbeit mit Daten und Zeit. Es wurde unter der Leitung von Stephen Colebourne, dem Autor von Joda-Time, entwickelt und hat die besten Praktiken übernommen.



Wichtige Klassen:

  • LocalDate — Datum ohne Uhrzeit (Jahr, Monat, Tag).
  • LocalTime — Uhrzeit ohne Datum (Stunden, Minuten, Sekunden, Nanosekunden).
  • LocalDateTime — Datum und Uhrzeit ohne Zeitzone.
  • ZonedDateTime — Datum und Uhrzeit mit Zeitzone.
  • Instant — Zeitpunkt in UTC (maschinenlesbare Darstellung).
  • Duration und Period — für die Arbeit mit Zeitintervallen.


Anwendungsbeispiel:



import java.time.*;import java.time.format.DateTimeFormatter;

public class JavaTimeExample { 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);

// Arbeit mit Uhrzeit LocalTime now = LocalTime.now(); LocalTime meetingTime = LocalTime.of(14, 30); System.out.println("Besprechungszeit: " + meetingTime);

// Formatierung DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm"); LocalDateTime event = LocalDateTime.of(2025, 12, 31, 23, 59); String formatted = event.format(formatter); System.out.println("Formatiert: " + formatted);

// Differenz zwischen Daten Period period = Period.between(today, specificDate); System.out.println("Tage bis zum 15. März: " + period.getDays()); }}


Vorteile: in JDK integriert, threadsicher, unveränderliche Objekte, umfangreiche API, Unterstützung aller Zeitzonen.



2. Joda-Time



Vor dem Erscheinen von java.time war Joda-Time der De-facto-Standard für die Arbeit mit Daten in Java. Heute ist seine Verwendung nur in alten Projekten (vor Java 8) gerechtfertigt, da die Entwickler eine Migration auf java.time empfehlen.



Beispiel:



import org.joda.time.DateTime;import org.joda.time.Days;import org.joda.time.LocalDate;

public class JodaTimeExample { public static void main(String[] args) { // Aktuelles Datum LocalDate today = LocalDate.now(); DateTime now = DateTime.now();

// Differenz zwischen Daten LocalDate start = new LocalDate(2025, 1, 1); LocalDate end = new LocalDate(2025, 12, 31); int days = Days.daysBetween(start, end).getDays(); System.out.println("Tage dazwischen: " + days); }}


Nachteile: erfordert externe Abhängigkeit, wird nicht aktiv aktualisiert, ist java.time funktional unterlegen.



3. Apache Commons Lang 3



Die Bibliothek org.apache.commons.lang3.time bietet praktische Hilfsprogramme für die Arbeit mit Daten, insbesondere für Formatierung, Parsing und Berechnungen.



Beliebte Klassen:

  • DateUtils — Methoden für

Empfehlungen