Arbeiten mit Datumswerten: datetime in Python

Datum und Uhrzeit zu verarbeiten gehört zu fast jedem Programm. Lerne, wie du mit dem datetime-Modul Zeitpunkte erzeugst, formatierst und berechnest.

Teilen
Arbeiten mit Datumswerten: datetime in Python

Ob Geburtstage, Logfiles, Terminplaner oder Altersberechnungen – früher oder später musst du in deinen Programmen mit Datum und Uhrzeit arbeiten. Python bringt dafür das mächtige Modul datetime mit. Damit erzeugst du Zeitpunkte, formatierst sie in lesbare Texte, liest Datumsangaben aus Strings ein und rechnest mit Zeitspannen. In diesem Beitrag lernst du die wichtigsten Bausteine kennen, mit denen du Datumswerte sicher in den Griff bekommst.

Das datetime-Modul importieren

Das Modul datetime ist Teil der Standardbibliothek, du musst also nichts installieren. Es enthält mehrere Klassen, darunter date (nur Datum), time (nur Uhrzeit) und datetime (beides zusammen). Den aktuellen Zeitpunkt bekommst du mit now().

from datetime import datetime, date

# Aktuelles Datum mit Uhrzeit
jetzt = datetime.now()
print(jetzt)  # z. B. 2026-06-19 14:30:05.123456

# Nur das heutige Datum
heute = date.today()
print(heute)  # z. B. 2026-06-19

Achte auf den Import: from datetime import datetime holt die Klasse datetime aus dem gleichnamigen Modul. Das verwirrt am Anfang oft, ist aber schnell vertraut.

Eigene Datumswerte erstellen

Du kannst Zeitpunkte auch gezielt selbst anlegen, indem du die einzelnen Bestandteile angibst. Die Reihenfolge ist Jahr, Monat, Tag und optional Stunde, Minute und Sekunde. Auf die einzelnen Bestandteile greifst du danach über Attribute zu.

from datetime import datetime

termin = datetime(2026, 12, 24, 18, 30)
print(termin)         # 2026-12-24 18:30:00

print(termin.year)    # 2026
print(termin.month)   # 12
print(termin.day)     # 24
print(termin.hour)    # 18

So kannst du zum Beispiel einen festen Termin im Code hinterlegen. Über termin.year und Co. liest du einzelne Werte aus, falls du sie weiterverarbeiten willst.

Datum in Text umwandeln mit strftime()

Die Standardausgabe eines datetime ist nicht immer ideal. Mit der Methode strftime() (string from time) bestimmst du das Format selbst. Dabei nutzt du Platzhalter wie %d für den Tag, %m für den Monat und %Y für das vierstellige Jahr.

from datetime import datetime

jetzt = datetime(2026, 6, 19, 14, 5)

print(jetzt.strftime("%d.%m.%Y"))        # 19.06.2026
print(jetzt.strftime("%H:%M Uhr"))       # 14:05 Uhr
print(jetzt.strftime("%d.%m.%Y, %H:%M")) # 19.06.2026, 14:05

Die wichtigsten Platzhalter sind: %Y (Jahr vierstellig), %m (Monat), %d (Tag), %H (Stunde), %M (Minute) und %S (Sekunde). Damit baust du dir genau das Format, das du brauchst.

Text in Datum umwandeln mit strptime()

Der umgekehrte Weg ist genauso wichtig: Oft liegen Datumsangaben als Text vor, etwa aus einer Datei oder Benutzereingabe. Mit strptime() (string parse time) verwandelst du einen String wieder in ein echtes datetime-Objekt. Du musst dabei angeben, wie der Text aufgebaut ist.

from datetime import datetime

text = "24.12.2026"
geparst = datetime.strptime(text, "%d.%m.%Y")

print(geparst)        # 2026-12-24 00:00:00
print(geparst.month)  # 12

# Auch mit Uhrzeit:
text2 = "2026-06-19 14:30"
geparst2 = datetime.strptime(text2, "%Y-%m-%d %H:%M")
print(geparst2.hour)  # 14

Wichtig ist, dass das Format im zweiten Argument exakt zum Text passt. Stimmt es nicht überein, wirft Python einen ValueError – ein guter Kandidat für eine try/except-Behandlung.

Mit Zeitspannen rechnen: timedelta

Um mit Zeitabständen zu rechnen, gibt es die Klasse timedelta. Damit kannst du Tage, Stunden oder Wochen zu einem Datum addieren oder die Differenz zwischen zwei Zeitpunkten berechnen. Die Differenz zweier datetime-Werte ergibt automatisch ein timedelta.

from datetime import datetime, timedelta

heute = datetime(2026, 6, 19)

# 10 Tage in die Zukunft
in_zehn_tagen = heute + timedelta(days=10)
print(in_zehn_tagen.strftime("%d.%m.%Y"))  # 29.06.2026

# Differenz zwischen zwei Daten
weihnachten = datetime(2026, 12, 24)
rest = weihnachten - heute
print(f"Noch {rest.days} Tage bis Weihnachten.")
# Noch 188 Tage bis Weihnachten.

Mit timedelta(days=..., hours=..., weeks=...) gibst du flexible Zeitspannen an. Das Attribut .days eines Differenzobjekts liefert die Anzahl der ganzen Tage – ideal für Countdowns oder Altersberechnungen.

Fazit

Mit dem Modul datetime hast du alle Werkzeuge an der Hand, um souverän mit Datum und Uhrzeit zu arbeiten. Du hast gelernt, wie du den aktuellen Zeitpunkt mit now() abrufst, eigene Datumswerte erstellst, sie mit strftime() formatierst, mit strptime() aus Text einliest und mit timedelta rechnest. Mein Tipp: Merke dir die Eselsbrücke strftime = "format" (Datum zu Text) und strptime = "parse" (Text zu Datum). Mit diesen Bausteinen löst du fast jede Datumsaufgabe – von der Terminerinnerung bis zur Auswertung von Logdateien.