Arbeiten mit Datum und Uhrzeit in Java: von A bis Z für Anfänger

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

Einführung in die Arbeit mit Datum und Uhrzeit in Java



Die Arbeit mit Datum und Uhrzeit ist eine der zentralen Aufgaben bei der Entwicklung jeder Anwendung. Ob Ereignisprotokollierung, Berechnung von Lieferterminen, Arbeit mit Zeitplänen oder Datenanalyse – ohne Verständnis dafür, wie Java Zeitobjekte verwaltet, kommt man nicht aus. In diesem Artikel behandeln wir alle wesentlichen Aspekte: von der alten API (Date und Calendar) bis zum modernen Paket java.time (Java 8+). Sie erfahren, wie Sie Daten erstellen, formatieren, vergleichen und Differenzen berechnen.



1. Alte API: Date und Calendar



Vor Java 8 waren die wichtigsten Klassen für die Arbeit mit Daten java.util.Date und java.util.Calendar. Sie kommen auch heute noch in Legacy-Code vor, daher ist es wichtig, ihre grundlegenden Funktionen und Einschränkungen zu verstehen.



1.1 Die Klasse Date

Date repräsentiert einen bestimmten Zeitpunkt mit einer Genauigkeit von Millisekunden. Allerdings hat es viele Nachteile: Es ist veränderbar (unsicher in Multithread-Anwendungen) und unterstützt die Internationalisierung nur schlecht.



import java.util.Date;

public class DateExample { public static void main(String[] args) { // Aktuelles Datum und Uhrzeit Date now = new Date(); System.out.println("Aktuelles Datum: " + now);

// Veraltete Methode zur Jahresermittlung (1900 + ...) int year = now.getYear() + 1900; System.out.println("Jahr: " + year); }}


1.2 Die Klasse Calendar

Calendar ist eine flexiblere, aber umständliche Klasse. Sie ermöglicht die Manipulation einzelner Datumskomponenten (Jahr, Monat, Tag).



import java.util.Calendar;

public class CalendarExample { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); System.out.println("Aktuelle Zeit: " + cal.getTime());

// Festlegen eines bestimmten Datums cal.set(2025, Calendar.MARCH, 15); System.out.println("Festgelegtes Datum: " + cal.getTime());

// Hinzufügen von 7 Tagen cal.add(Calendar.DAY_OF_MONTH, 7); System.out.println("In einer Woche: " + cal.getTime()); }}


Nachteile: Monatszählung ab 0 (Januar = 0), Veränderbarkeit, fehlende einfache Formatierung.



2. Neue API: java.time (Java 8+)



Ab Java 8 wurde der Standardbibliothek das Paket java.time hinzugefügt, das auf den Ideen der Bibliothek Joda-Time basiert. Es besteht aus unveränderlichen (immutable) Klassen, was den Code sicher und vorhersagbar macht.



2.1 LocalDate – nur Datum

LocalDate repräsentiert ein Datum ohne Uhrzeit (Jahr, Monat, Tag). Ideal für Geburtstage, Kalender.



import java.time.LocalDate;import java.time.Month;

public class LocalDateExample { public static void main(String[] args) { // Aktuelles Datum LocalDate today = LocalDate.now(); System.out.println("Heute: " + today);

// Bestimmtes Datum LocalDate specificDate = LocalDate.of(2025, Month.DECEMBER, 31); System.out.println("Neujahr: " + specificDate);

// Tage hinzufügen/abziehen LocalDate nextWeek = today.plusDays(7); System.out.println("In einer Woche: " + nextWeek); }}


2.2 LocalTime – nur Uhrzeit

LocalTime speichert die Uhrzeit (Stunden, Minuten, Sekunden, Nanosekunden) ohne Bezug zu einem Datum.



import java.time.LocalTime;

public class LocalTimeExample { public static void main(String[] args) { LocalTime now = LocalTime.now(); System.out.println("Aktuelle Uhrzeit: " + now);

LocalTime meeting = LocalTime.of(14, 30); System.out.println("Besprechung um: " + meeting);

// Zeitvergleich if (now.isAfter(meeting)) { System.out.println("Die Besprechung ist bereits vorbei"); } }}<

Blogs

Buchempfehlungen