Datum-Manipulation in Python

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 ein datetime-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 Klasse timezone oder mit zoneinfo 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 die time-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 ein datetime-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 explizit timezone.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.

YouTube Video