Datum-Manipulation in Python
Dieser Artikel erklärt die Datum-Manipulation in Python.
YouTube Video
Datum-Manipulation in Python
Die Datum-Manipulation in Python verwendet hauptsächlich das Modul datetime
. Dieses Modul bietet verschiedene Klassen und Funktionen zur Manipulation von Datum und Zeit.
Nachfolgend finden Sie einige Beispiele für die grundlegende Datum-Manipulation mit dem Modul datetime
.
Abrufen von Datum und Uhrzeit
Sie können das aktuelle Datum und die aktuelle Uhrzeit wie folgt erhalten. datetime.now()
und datetime.today()
liefern fast das gleiche Ergebnis, aber es kann Unterschiede in der Behandlung von Zeitzonen geben.
1from datetime import datetime
2
3# Get the current date and time
4now = datetime.now()
5print(f"Current date and time: {now}")
6
7# Get today's date only
8today = datetime.today()
9print(f"Today's date: {today.date()}")
- Dieser Code ruft das aktuelle Datum und die aktuelle Uhrzeit sowie nur das heutige Datum ab und zeigt sie an.
Erstellen von spezifischen Daten und Uhrzeiten
Sie können ein bestimmtes Datum und eine bestimmte Uhrzeit wie folgt erstellen.
1from datetime import datetime
2
3# Create a specific date and time
4specific_date = datetime(2023, 11, 7, 10, 30, 45)
5print(f"Specified date and time: {specific_date}")
- Dieser Code erstellt und zeigt das angegebene Datum und die angegebene Uhrzeit an (7. November 2023, 10:30:45).
Formatieren von Daten
Die Datumsformatierung kann wie folgt durchgeführt werden.
1from datetime import datetime
2
3now = datetime.now()
4
5# Format the date
6formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
7print(f"Formatted date and time: {formatted_date}")
- Dieser Code ruft das aktuelle Datum und die aktuelle Uhrzeit ab, formatiert sie mit
strftime
im angegebenen Format und zeigt sie an.
Datumsformat-Strings
%Y
: Jahr (4 Stellen)%m
: Monat (01 bis 12)%d
: Tag (01 bis 31)%H
: Stunde (00 bis 23)%M
: Minute (00 bis 59)%S
: Sekunde (00 bis 59)
Datumsstrings analysieren
Sie können eine Zeichenkette, die ein Datum repräsentiert, in ein datetime
-Objekt umwandeln.
1from datetime import datetime
2
3date_string = "2023-11-07 10:30:45"
4parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
5print(f"Parsed date and time: {parsed_date}")
- Dieser Code wandelt ein als Zeichenkette dargestelltes Datum mit
strptime()
in eindatetime
-Objekt um und zeigt es an.
Datum-Arithmetik
Datumsberechnungen können wie folgt durchgeführt werden.
1from datetime import datetime, timedelta
2
3now = datetime.now()
4
5# Date for one day later
6tomorrow = now + timedelta(days=1)
7print(f"Date for one day later: {tomorrow}")
8
9# Date for one week ago
10last_week = now - timedelta(weeks=1)
11print(f"Date for one week ago: {last_week}")
12
13# Time for two hours later
14in_two_hours = now + timedelta(hours=2)
15print(f"Time for two hours later: {in_two_hours}")
- Dieser Code verwendet
timedelta
, um Tage und Zeiten zum aktuellen Datum und zur aktuellen Uhrzeit zu addieren oder abzuziehen und berechnet sowie zeigt dabei das Datum und die Uhrzeit für morgen, vor einer Woche und in zwei Stunden an.
Umgang mit Zeitzonen
Mit dem datetime
-Modul können Sie auch Zeitzonen verwalten.
1from datetime import datetime, timezone, timedelta
2
3# Current UTC time
4utc_now = datetime.now(timezone.utc)
5print(f"Current UTC time: {utc_now}")
6
7# JST (UTC+9)
8jst = timezone(timedelta(hours=9))
9jst_now = datetime.now(jst)
10print(f"Current JST time: {jst_now}")
datetime
gibt standardmäßig ein 'naives Datum/Uhrzeit'-Objekt (ohne Zeitzoneninformation) zurück. Sie können Zeitzonen explizit mit der Klassetimezone
oder mitzoneinfo
verwalten.
Die date
-Klasse und die time
-Klasse
Mit dem datetime
-Modul können Sie auch nur Datums- oder nur Zeitangaben verarbeiten.
1from datetime import date, time
2
3d = date(2023, 11, 7)
4t = time(10, 30, 45)
5
6print(f"Date only: {d}")
7print(f"Time only: {t}")
- Die
date
-Klasse verarbeitet nur Datumsangaben und dietime
-Klasse nur Zeitangaben.
Umwandlung zwischen datetime
und timestamp
Die Umwandlung zwischen UNIX-Timestamps und datetime
-Objekten ist möglich. Hier bezeichnet ein UNIX-Timestamp die seit dem 1. Januar 1970 vergangenen Sekunden.
1from datetime import datetime
2
3now = datetime.now()
4
5# datetime → timestamp
6timestamp = now.timestamp()
7print(f"Timestamp: {timestamp}")
8
9# timestamp → datetime
10restored = datetime.fromtimestamp(timestamp)
11print(f"Restored datetime: {restored}")
- Dieser Code wandelt das aktuelle Datum und die aktuelle Uhrzeit in einen UNIX-Timestamp um und verwendet dann die Funktion
fromtimestamp()
, um diesen Timestamp wieder in eindatetime
-Objekt umzuwandeln.
Häufige Fallstricke
Bei der Verwendung des datetime
-Moduls sollten Sie auf Folgendes achten.
datetime.now()
berücksichtigt keine Zeitzonen. Für Internationalisierung müssen Sie daher explizittimezone.utc
verwenden.- Achten Sie darauf,
%m
(Monat) und%M
(Minute) nicht in Format-Strings zu verwechseln.
Zusammenfassung
Das Modul datetime
bietet auch viele weitere Funktionen zur flexiblen Manipulation von Datum und Zeit. Zusätzlich stehen Klassen wie date
, time
und timedelta
zur Verfügung, die auf spezifische Operationen spezialisiert sind.
Die Verwendung anderer Bibliotheken ermöglicht ebenfalls eine erweiterte Datum-Manipulation. Zum Beispiel ist pandas
auf die Verarbeitung von Zeitreihendaten spezialisiert, während dateutil
sich gut für das Parsen komplexer Daten eignet. Außerdem ist die Bibliothek arrow
auch nützlich.
Sie können den obigen Artikel mit Visual Studio Code auf unserem YouTube-Kanal verfolgen. Bitte schauen Sie sich auch den YouTube-Kanal an.