Python Datetime: Arbeiten mit Datums- und Uhrzeitangaben

Erfahren Sie, wie Sie in Python mit Datumsangaben, Uhrzeiten, Zeitzonen und Berechnungen umgehen. Master-Formatierung, Parsing und Arithmetik mit Datetime und Timedelta.

Versuchen Sie es im Editor

Übersicht

Der Umgang mit Datums- und Uhrzeitangaben ist aufgrund von Schaltjahren, Sommerzeitumstellungen und unterschiedlichen Zeitzonenformaten eine bekannte Herausforderung in der Softwareentwicklung. Python löst diese Herausforderungen mit seinem integrierten „datetime“-Modul. Dieses Modul bietet einen robusten Satz von Objektklassen – wie „Datum“, „Uhrzeit“, „DatumUhrzeit“ und „Zeitzone“ – die zeitliche Daten sauber darstellen und manipulieren und so Datumsberechnungen unkompliziert machen.

Eine der häufigsten Aufgaben ist die Konvertierung von Datumsangaben in Zeichenfolgen (Formatierung) und von Zeichenfolgen in Datumsangaben (Analyse). Python verwendet hierfür zwei Hauptmethoden: „.strftime()“ (String-Format-Zeit) konvertiert ein Datetime-Objekt mithilfe von Formatierungscodes (wie „%Y“ für Jahr, „%m“ für Monat und „%d“ für Tag) in einen lesbaren String. Umgekehrt analysiert „datetime.strptime()“ (String-Parse-Zeit) eine rohe String-Eingabe in ein Datetime-Objekt basierend auf einer passenden Formatvorlage, was beim Lesen von Protokollen oder API-Eingaben von entscheidender Bedeutung ist.

Auch die Durchführung von Datumsberechnungen wird mit dem Objekt „timedelta“ vollständig unterstützt. Ein „Zeitdelta“ stellt eine Zeitdauer dar (z. B. 7 Tage, 4 Stunden). Sie können ein „timedelta“ von einem „datetime“ addieren oder davon subtrahieren, um vergangene oder zukünftige Daten zu berechnen (z. B. um ein Ablaufdatum zu bestimmen). Wenn Sie mit mehreren Zeitzonen arbeiten, ist die Verwendung von Objekten, die Zeitzonen berücksichtigen (z. B. „zoneinfo“ oder „timezone.utc“), von entscheidender Bedeutung, um sicherzustellen, dass Datumsvergleiche über verschiedene Serverstandorte hinweg korrekt bleiben.

Code- und Ausführungsausgabe

Parsen von Zeichenfolgen in Datetime-Objekte und Berechnen zukünftiger Fristen mithilfe von Timedelta.

from datetime import datetime, timedelta

# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")

# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")

# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")

# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")
Terminal-Ausgabe
Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04

Schrittweise Umsetzung

  • Berechnen des Testablaufs und der Abrechnungstermine
  • Analysieren von Zeitstempelzeichenfolgen in Serverzugriffsprotokollen
  • Planen Sie automatisierte Cron-Jobs oder wiederkehrende Berichte

Häufig gestellte Fragen

Was ist ein naives vs. bewusstes Datetime-Objekt?

Ein naives Datetime-Objekt enthält keine Zeitzoneninformationen, wohingegen ein bewusstes Datetime-Objekt Zeitzonenoffsets enthält, was es für internationale Zeitberechnungen sicher macht.

Wie berechne ich die Differenz zwischen zwei Daten?

Das Subtrahieren eines Datetime-Objekts von einem anderen gibt ein Timedelta-Objekt zurück, das die genaue Dauer zwischen ihnen darstellt.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.