- 1 1. Einführung
- 2 2. Was ist das datetime-Modul? Lassen Sie uns die grundlegenden Konzepte verstehen
- 3 3. Methode zum Abrufen der aktuellen Uhrzeit und des heutigen Datums in Python (Unterschied zwischen now und today)
- 4 4. Formatkonvertierung für Datum und Uhrzeit (String ⇔ datetime)
- 5 5. Methode zum Addieren und Subtrahieren von Daten in Python (Verwendung von timedelta)
- 6 6. Umgang mit Datum und Zeit unter Berücksichtigung der Zeitzone (Unterschiede zwischen pytz und zoneinfo)
- 7 7. Fehler und deren Behebung
- 8 8. Praktische Beispiele
- 9 9. Häufig gestellte Fragen (FAQ)
- 10 10. Zusammenfassung
1. Einführung
Beim Umgang mit Datum und Uhrzeit in Python ist das datetime
-Modul unverzichtbar. Mit diesem Modul können Sie die aktuelle Uhrzeit abrufen, Datums- und Zeitformate konvertieren, Zeitberechnungen durchführen und vieles mehr – eine Vielzahl von Operationen ist möglich.
Jedoch kann der Umgang mit datetime
für Python-Anfänger etwas schwierig erscheinen. Zum Beispiel:
- „Ich möchte das aktuelle Datum oder die Uhrzeit abrufen, aber welche Funktion soll ich verwenden?“
- „Ich verstehe nicht, wie ich die Uhrzeit unter Berücksichtigung der Zeitzone verarbeite!“
- „Wie berechne ich Daten?“
In diesem Artikel erklären wir das datetime
-Modul in Python von den Grundlagen bis zu fortgeschrittenen Anwendungen klar und verständlich. Damit auch Anfänger es reibungslos verstehen können, integrieren wir Code-Beispiele in die Erklärungen, also nutzen Sie das bitte als Referenz.
2. Was ist das datetime-Modul? Lassen Sie uns die grundlegenden Konzepte verstehen
2.1 Überblick über das datetime-Modul
Python stellt als Standardbibliothek dasdatetime
-Modul zur Verfügung, mit dem das Arbeiten mit Datum und Uhrzeit einfach möglich ist.datetime
-Modul enthält folgende wichtige Klassen.
Klassenname | Überblick |
---|---|
datetime | Klasse zum Umgang mit Datum und Uhrzeit |
date | Klasse nur für Datum |
time | Klasse nur für Uhrzeit |
timedelta | Klasse zur Darstellung von Zeitdifferenzen |
tzinfo | Klasse zum Umgang mit Zeitzoneninformationen |
Darunter wird diedatetime
-Klasse am häufigsten verwendet.
2.2 Methode zum Importieren des datetime-Moduls
Um dasdatetime
-Modul in Python zu verwenden, muss es zuerst importiert werden. Durch die Verwendung vonimport datetime
wie folgt kann das gesamte Modul importiert werden.
import datetime
# Aktuelles Datum und Uhrzeit abrufen
now = datetime.datetime.now()
print(now)
Es ist auch möglich, nur bestimmte Klassen zu importieren.
from datetime import datetime
# Aktuelles Datum und Uhrzeit abrufen
now = datetime.now()
print(now)
Durch den Import in der Formfrom datetime import datetime
mussdatetime
im Code nicht doppelt geschrieben werden, wie z. B. datetime.datetime.now()
, was den Code einfacher macht.
3. Methode zum Abrufen der aktuellen Uhrzeit und des heutigen Datums in Python (Unterschied zwischen now und today)
3.1 Methode zum Abrufen des aktuellen Datums und der Uhrzeit
In Python wird datetime.now()
verwendet, um das aktuelle Datum und die Uhrzeit abzurufen.
from datetime import datetime
now = datetime.now()
print("Aktuelles Datum und Uhrzeit:", now)
Dieser Code erzeugt eine Ausgabe wie diese.
Aktuelles Datum und Uhrzeit: 2025-02-01 12:34:56.789012
Dieses Format ist in der Form YYYY-MM-DD HH:MM:SS.ssssss
und enthält Datum, Uhrzeit und Mikrosekunden.
3.2 Methode zum Abrufen des heutigen Datums
Wenn Sie nur das heutige Datum abrufen möchten, verwenden Sie date.today()
.
from datetime import date
today = date.today()
print("Heutiges Datum:", today)
Beispielausgabe:
Heutiges Datum: 2025-02-01
3.3 Unterschied zwischen now()
und today()
Methode | Funktion |
---|---|
datetime.now() | Aktuelles „Datum und Uhrzeit“ abrufen |
date.today() | Aktuelles „nur Datum“ abrufen |
Je nach Anwendungsfall sollte man sie unterschiedlich verwenden.
4. Formatkonvertierung für Datum und Uhrzeit (String ⇔ datetime)
Beim Umgang mit Datum und Uhrzeit ist die Formatkonvertierung sehr wichtig. In Python können Sie mit strftime()
und strptime()
Datum und Uhrzeit mit Strings gegenseitig konvertieren.
4.1 Konvertierung eines datetime-Objekts in einen String (strftime
)
Wenn Sie Datum und Uhrzeit in einen String mit einem bestimmten Format konvertieren möchten, verwenden Sie strftime()
.
from datetime import datetime
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("Formatierter Datumsstring:", formatted_date)
Ausgabe:
Formatierter Datumsstring: 2025-02-01 12:34:56
4.2 Konvertierung eines Strings in ein datetime-Objekt (strptime
)
Um einen String in ein datetime
zu konvertieren, verwenden Sie strptime()
.
from datetime import datetime
date_str = "2025-02-01 12:34:56"
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print("Konvertiertes datetime-Objekt:", dt)
Ausgabe:
Konvertiertes datetime-Objekt: 2025-02-01 12:34:56
5. Methode zum Addieren und Subtrahieren von Daten in Python (Verwendung von timedelta)
Python kann durch die Verwendung der timedelta
-Klasse das Addieren und Subtrahieren von Daten und Uhrzeiten einfach durchführen.
5.1 Grundlagen der timedelta
-Klasse
from datetime import datetime, timedelta
# Aktuelles Datum und Uhrzeit abrufen
now = datetime.now()
# Datum in 7 Tagen abrufen
future_date = now + timedelta(days=7)
print("Datum in 7 Tagen:", future_date)
# Datum vor 3 Tagen abrufen
past_date = now - timedelta(days=3)
print("Datum vor 3 Tagen:", past_date)
5.2 Addition und Subtraktion in Zeiteinheiten
from datetime import datetime, timedelta
now = datetime.now()
# Uhrzeit in 1 Stunde
one_hour_later = now + timedelta(hours=1)
print("Uhrzeit in 1 Stunde:", one_hour_later)
# Uhrzeit vor 30 Minuten
thirty_minutes_ago = now - timedelta(minutes=30)
print("Uhrzeit vor 30 Minuten:", thirty_minutes_ago)
5.3 Die Differenz zwischen zwei Daten berechnen
from datetime import datetime
# Zwei Daten definieren
date1 = datetime(2025, 2, 10)
date2 = datetime(2025, 2, 1)
# Differenz berechnen
difference = date1 - date2
print("Differenz der Daten:", difference)
print("Tagesdifferenz:", difference.days, "Tage")

6. Umgang mit Datum und Zeit unter Berücksichtigung der Zeitzone (Unterschiede zwischen pytz und zoneinfo)
Beim Umgang mit Datum und Uhrzeit in Python ist es sehr wichtig, die Zeitzone zu berücksichtigen.
6.1 pytz
verwendete Zeitzoneneinstellung
from datetime import datetime
import pytz
# Spezifikation der Zeitzone
japan_tz = pytz.timezone('Asia/Tokyo')
# Aktuelle UTC-Zeit abrufen
utc_now = datetime.utcnow()
# In JST (Japan Standard Time) konvertieren
jst_now = utc_now.replace(tzinfo=pytz.utc).astimezone(japan_tz)
print("Japanische Zeit (JST):", jst_now)
6.2 zoneinfo
(Python 3.9 und höher) verwendete Zeitzoneneinstellung
from datetime import datetime
from zoneinfo import ZoneInfo
# Aktuelle Zeit in JST (Japan Standard Time) abrufen
jst_now = datetime.now(ZoneInfo("Asia/Tokyo"))
print("Aktuelle JST-Zeit:", jst_now)
Wenn Sie Python 3.9 oder höher verwenden, wird empfohlen, zoneinfo
zu verwenden.
7. Fehler und deren Behebung
Beim Verwenden des Python-datetime
-Moduls stoßen insbesondere Anfänger häufig auf bestimmte Fehler.
7.1 AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'
from datetime import datetime
# Versuch, timedelta zu verwenden, führt zu einem Fehler
now = datetime.now()
new_date = now + datetime.timedelta(days=7)
Lösung:
from datetime import datetime, timedelta
now = datetime.now()
new_date = now + timedelta(days=7)
print(new_date)
7.2 TypeError: can't subtract offset-naive and offset-aware datetimes
from datetime import datetime
import pytz
dt_naive = datetime(2025, 2, 1, 12, 0)
dt_aware = datetime(2025, 2, 1, 12, 0, tzinfo=pytz.utc)
diff = dt_aware - dt_naive # Fehler tritt auf
Lösung:
dt_aware = dt_naive.replace(tzinfo=pytz.utc)
8. Praktische Beispiele
8.1 Methode zur Generierung eines Datumsbereichs
from datetime import datetime, timedelta
start_date = datetime(2025, 2, 1)
end_date = datetime(2025, 2, 7)
date_list = [start_date + timedelta(days=i) for i in range((end_date - start_date).days + 1)]
for date in date_list:
print(date.strftime("%Y-%m-%d"))
8.2 Datumsberechnung unter Berücksichtigung von Geschäftstagen (Wochentagen)
import pandas as pd
business_days = pd.bdate_range(start="2025-02-01", end="2025-02-10")
for day in business_days:
print(day.date())
8.3 Konvertierung von UNIX-Timestamp
from datetime import datetime
timestamp = 1735689600
dt = datetime.fromtimestamp(timestamp)
print("Konvertierte datetime:", dt)
9. Häufig gestellte Fragen (FAQ)
9.1 Was ist der Unterschied zwischen datetime
und time
?
Aspekt | datetime | time |
---|---|---|
Zweck | Verarbeitung von Datum und Uhrzeit | Messung der UNIX-Zeit oder Sleep-Verarbeitung |
Beispiel | datetime(2025, 2, 1, 12, 0, 0) | time.sleep(2) |
9.2 Was ist der Unterschied zwischen strftime
und strptime
?
from datetime import datetime
# datetime zu String (strftime)
now = datetime(2025, 2, 1, 12, 0, 0)
formatted_str = now.strftime("%Y-%m-%d %H:%M:%S")
print("Umwandlung zu String:", formatted_str)
# String zu datetime (strptime)
date_str = "2025-02-01 12:00:00"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print("Umwandlung zu datetime:", parsed_date)
9.3 Wie konvertiert man einen UNIX-Timestamp zu datetime
?
from datetime import datetime
timestamp = 1735689600
dt = datetime.fromtimestamp(timestamp)
print("Datetime nach der Konvertierung:", dt)
10. Zusammenfassung
10.1 Zusammenfassung der wichtigsten Punkte des Artikels
datetime
-Modul ist eine Standardbibliothek in Python zur Handhabung von Datum und Uhrzeit.datetime.now()
zum Abrufen des aktuellen Datums und der Uhrzeit,date.today()
zum Abrufen nur des aktuellen Datums.strftime()
zur Konvertierung vondatetime
zu einem String,strptime()
zur Konvertierung eines Strings zudatetime
.timedelta(days=7)
zur Berechnung des Datums eine Woche später.- Ab Python 3.9
zoneinfo
, davorpytz
verwenden. datetime
-Objekte können mit>
<
==
verglichen werden.
10.2 Offizielle Dokumentation und Referenzquellen
- Python offizielle Dokumentation (datetime-Modul)
- Dokumentation von pytz
- zoneinfo (Python 3.9 und höher)
10.3 Lassen Sie uns die praktische Handhabung von Zeit in Python ausprobieren
✅Entwicklung einer App zur Terminverwaltung✅Analyse von Log-Daten✅Berechnung von Uhrzeiten in verschiedenen Zeitzonen✅Implementierung einer automatischen ErinnerungsfunktionVielen Dank, dass Sie bis zum Ende gelesen haben!