So handhaben Sie Datums- und Uhrzeitangaben in Python mit datetime

Der Umgang mit Datum und Uhrzeit ist eine gängige Aufgabe in der Programmierung, und Python bietet ein integriertes Modul namens datetime zum Arbeiten mit Datum und Uhrzeit. Dieses Modul bietet Klassen zum Bearbeiten von Datum, Uhrzeit und Zeitintervallen, wodurch die Durchführung von Datumsarithmetik, das Formatieren von Datumsangaben und die Verwaltung von Zeitzonen einfacher wird. In diesem Artikel erfahren Sie, wie Sie das Modul datetime verwenden, um Datum und Uhrzeit in Python effektiv zu handhaben.

Erste Schritte mit datetime

Das Modul datetime bietet mehrere Klassen, wie datetime.date, datetime.time, datetime.datetime, datetime.timedelta und datetime.tzinfo. Diese Klassen ermöglichen uns die Arbeit mit Daten, Zeiten und Zeitintervallen.

Um das Modul datetime zu verwenden, müssen Sie es importieren:

import datetime

Mit Datumsangaben arbeiten

Sie können ein Datumsobjekt mit der Klasse date erstellen. Dafür sind drei Parameter erforderlich: Jahr, Monat und Tag.

from datetime import date

# Create a date object
my_date = date(2023, 9, 4)
print(my_date)  # Output: 2023-09-04

Sie können auch auf einzelne Bestandteile des Datums zugreifen, wie etwa Jahr, Monat und Tag:

print(my_date.year)   # Output: 2023
print(my_date.month)  # Output: 9
print(my_date.day)    # Output: 4

Arbeiten mit Zeiten

Mit der Klasse time können Sie ein Zeitobjekt erstellen. Sie erfordert Stunden, Minuten, Sekunden und Mikrosekunden (optional).

from datetime import time

# Create a time object
my_time = time(14, 30, 45)
print(my_time)  # Output: 14:30:45

Ähnlich wie bei Datumsangaben können Sie auf einzelne Komponenten des Zeitobjekts zugreifen:

print(my_time.hour)   # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45

Kombinieren von Datum und Uhrzeit mit datetime

Die Klasse datetime kombiniert Datum und Uhrzeit in einem einzigen Objekt. Sie können ein datetime-Objekt erstellen, indem Sie Jahr, Monat, Tag, Stunde, Minute, Sekunde und Mikrosekunde (optional) übergeben.

from datetime import datetime

# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime)  # Output: 2023-09-04 14:30:45

Sie können sowohl auf die Datums- als auch auf die Zeitkomponenten eines datetime-Objekts zugreifen:

print(my_datetime.date())  # Output: 2023-09-04
print(my_datetime.time())  # Output: 14:30:45

Abrufen des aktuellen Datums und der aktuellen Uhrzeit

Das Modul datetime bietet praktische Methoden, um das aktuelle Datum, die aktuelle Uhrzeit oder beides abzurufen:

# Current date
today = date.today()
print(today)  # Output: (current date)

# Current date and time
now = datetime.now()
print(now)  # Output: (current date and time)

Datumsarithmetik mit timedelta

Die Klasse timedelta stellt eine Dauer dar, also die Differenz zwischen zwei Daten oder Zeiten. Sie ermöglicht Ihnen, Datumsarithmetik durchzuführen, wie z. B. das Addieren oder Subtrahieren von Tagen zu einem Datum.

from datetime import timedelta

# Create a timedelta object
delta = timedelta(days=7)

# Add 7 days to the current date
future_date = today + delta
print(future_date)

Sie können auch die Differenz zwischen zwei Daten berechnen:

# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days)  # Output: 7

Formatieren von Datums- und Uhrzeitangaben

Mit der Methode strftime() können Sie ein Datum oder eine Uhrzeit in eine Zeichenfolge formatieren. Diese Methode verwendet einen Formatcode, um das gewünschte Format anzugeben:

# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date)  # Output: September 04, 2023

Zu den gängigen Formatcodes gehören:

  • %Y – Jahr (z. B. 2023)
  • %m - Monat als mit Nullen aufgefüllte Dezimalzahl (z. B. 09)
  • %d – Tag des Monats als mit Nullen aufgefüllte Dezimalzahl (z. B. 04)
  • %H - Stunde (24-Stunden-Uhr) als mit Nullen aufgefüllte Dezimalzahl (z. B. 14)
  • %M – Minute als mit Nullen aufgefüllte Dezimalzahl (z. B. 30)
  • %S - Sekunde als mit Nullen aufgefüllte Dezimalzahl (z. B. 45)

Analysieren von Daten aus Zeichenfolgen

Mit der Methode strptime() können Sie einen String in ein datetime-Objekt konvertieren, wobei das Format des Datumsstrings angegeben wird:

# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)

Arbeiten mit Zeitzonen

Das Modul datetime unterstützt zeitzonenabhängige datetime-Objekte mithilfe der Bibliothek pytz. Um mit Zeitzonen arbeiten zu können, müssen Sie pytz installieren:

pip install pytz

Anschließend können Sie einem datetime-Objekt eine Zeitzone zuweisen:

from datetime import datetime
import pytz

# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)

Abschluss

Das Modul datetime in Python bietet leistungsstarke Tools für die Verarbeitung von Datums- und Uhrzeitangaben, einschließlich der Erstellung, Formatierung, Analyse und Berechnung von Datums- und Uhrzeitobjekten. Ob Sie Datumsangaben bearbeiten, mit Zeitzonen arbeiten oder Datums- und Uhrzeitangaben für die Anzeige formatieren müssen, das Modul datetime bietet Ihnen alles.