9.1 Arbeiten mit Datum und Uhrzeit
Programmierer müssen in ihren Programmen oft mit Daten und Uhrzeit arbeiten. Daher überrascht es nicht, dass es in Python zwei Standardbibliotheken für diese Fälle gibt: datetime und time.
Die Bibliothek datetime ist Teil der Standardbibliothek von Python und stellt Klassen für die Arbeit mit Daten und Uhrzeiten bereit. Sie ermöglicht das Erstellen, Manipulieren und Formatieren von Daten und Uhrzeiten sowie das Ausführen arithmetischer Operationen damit.
Die Hauptklassen der datetime Bibliothek
Die Klasse datetime.date
Diese Klasse repräsentiert ein Datum (Jahr, Monat, Tag) ohne Uhrzeit. Sie ist nützlich für die Arbeit mit Kalenderdaten.
Beispiel der Nutzung:
import datetime
# Erstellen eines Datumsobjekts
d = datetime.date(2023, 5, 24)
print(d) # Ausgabe: 2023-05-24
# Abrufen des aktuellen Datums
today = datetime.date.today()
print(today)
# Zugriff auf die Attribute Jahr, Monat und Tag
print(d.year) # Ausgabe: 2023
print(d.month) # Ausgabe: 5
print(d.day) # Ausgabe: 24
Die Klasse datetime.time
Diese Klasse repräsentiert eine Uhrzeit (Stunden, Minuten, Sekunden, Mikrosekunden) ohne Datum. Sie ist nützlich für die Arbeit mit der Tageszeit.
Beispiel der Nutzung:
import datetime
# Erstellen eines Zeitobjekts
t = datetime.time(14, 30, 45)
print(t) # Ausgabe: 14:30:45
# Zugriff auf die Attribute Stunden, Minuten und Sekunden
print(t.hour) # Ausgabe: 14
print(t.minute) # Ausgabe: 30
print(t.second) # Ausgabe: 45
Die Klasse datetime.datetime
Diese Klasse kombiniert Datum und Uhrzeit (Jahr, Monat, Tag, Stunden, Minuten, Sekunden, Mikrosekunden). Sie ist nützlich für die Arbeit mit bestimmten Zeitpunkten.
Beispiel der Nutzung:
import datetime
# Erstellen eines Datums- und Zeitobjekts
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt) # Ausgabe: 2023-05-24 14:30:45
# Abrufen des aktuellen Datums und der Uhrzeit
now = datetime.datetime.now()
print(now)
# Zugriff auf die Attribute Datum und Uhrzeit
print(dt.year) # Ausgabe: 2023
print(dt.month) # Ausgabe: 5
print(dt.day) # Ausgabe: 24
print(dt.hour) # Ausgabe: 14
print(dt.minute) # Ausgabe: 30
print(dt.second) # Ausgabe: 45
Die Klasse datetime.timedelta
Diese Klasse repräsentiert den Unterschied zwischen zwei Zeitpunkten, ausgedrückt in Tagen, Sekunden und Mikrosekunden. Sie ist nützlich für die Durchführung arithmetischer Operationen mit Daten und Uhrzeiten.
Beispiel der Nutzung:
import datetime
# Erstellen eines timedelta-Objekts
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta) # Ausgabe: 10 days, 5:30:00
# Hinzufügen von timedelta zu einem Datum
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt) # Ausgabe: 2023-06-03 20:00:00
# Subtrahieren von timedelta von einem Datum
earlier_dt = dt - delta
print(earlier_dt) # Ausgabe: 2023-05-14 09:00:00
4.2 Formatieren und Parsen von Daten und Uhrzeiten
Oft müssen wir nicht nur mit Daten arbeiten, sondern sie in eine Zeichenkette eines bestimmten Formats umwandeln. Der umgekehrte Prozess, bei dem wir eine Zeichenkette in ein Objekt umwandeln, wird normalerweise als Parsen bezeichnet. Für diese Operationen gibt es in Python ebenfalls Klassen und Methoden:
Die Methode strftime()
Die Methode strftime() wird verwendet, um datetime-Objekte nach einem bestimmten Format in eine Zeichenkette zu formatieren.
Beispiel der Nutzung:
import datetime
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
# Formatieren von Datum und Uhrzeit
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt) # Ausgabe: 2023-05-24 14:30:45
# Nur das Datum formatieren
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date) # Ausgabe: 24-05-2023
# Nur die Uhrzeit formatieren
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time) # Ausgabe: 14:30:45
Die Methode strptime()
Die Methode strptime() wird verwendet, um Zeichenketten nach einem bestimmten Format in datetime-Objekte zu parsen.
Beispiel der Nutzung:
import datetime
# Parsen einer Zeichenkette in ein datetime-Objekt
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt) # Ausgabe: 2023-05-24 14:30:45
# Parsen einer Zeichenkette in ein date-Objekt
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d) # Ausgabe: 2023-05-24
# Parsen einer Zeichenkette in ein time-Objekt
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t) # Ausgabe: 14:30:45
4.3 Arbeiten mit Zeitzonen
Wie die Praxis zeigt, nutzen Menschen weltweit unsere Dienste, und leider leben sie in verschiedenen Ländern und haben unterschiedliche Zeitzonen (timezone). Daher musst du als Programmierer auch lernen, damit umzugehen.
Und natürlich gibt es in Python auch eine Klasse für diesen Fall:
Die Klasse timezone
Die Klasse timezone aus dem Modul datetime ermöglicht die Arbeit mit Zeitzonen.
import datetime
# Erstellen eines datetime-Objekts mit der Zeitzone UTC
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt) # Ausgabe: 2023-05-24 14:30:45+00:00
# Konvertierung in eine andere Zeitzone
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt) # Ausgabe: 2023-05-24 23:30:45+09:00
Wir haben die Bibliothek datetime sehr oberflächlich besprochen. In Zukunft werden wir darauf zurückkommen und lernen, sie für spezifischere Aufgaben zu nutzen. Jetzt wollte ich euch nur damit bekannt machen und, sozusagen, euren Blick auf das Set der Standardbibliotheken erweitern.
Über jede Bibliothek solltet ihr zunächst wissen, dass sie existiert und eine Vorstellung davon haben, was man damit machen kann. Eine Liste der Funktionen, ihrer Parameter und aller Möglichkeiten kann man immer aus der offiziellen Dokumentation entnehmen.
GO TO FULL VERSION