CodeGym /Kurse /Python SELF DE /Einführung in die Arbeit mit Zeitzonen

Einführung in die Arbeit mit Zeitzonen

Python SELF DE
Level 40 , Lektion 2
Verfügbar

1. Bedeutung von Zeitzonen

Zeitzonen sind nicht nur ein guter Grund für ein bisschen Jetlag bei internationalen Flügen. Sie spielen eine entscheidende Rolle in der Programmierung, besonders wenn es um globale Anwendungen und Services geht. Das Nachverfolgen von Zeit in verschiedenen Zeitzonen ist notwendig für die Speicherung und Anzeige von Daten, Planung von Aufgaben, Koordination von Teams weltweit und vieles mehr. Ohne die Berücksichtigung von Zeitzonen kann dein Code ein echtes Zeit-Phänomen erschaffen, und das will ja niemand, oder?

Was ist eine Zeitzone?

Eine Zeitzone ist eine Region, in der alle Uhren dieselbe Standardzeit anzeigen. Jede Zeitzone wird durch die Abweichung von der koordinierten Weltzeit (UTC) definiert. Zum Beispiel, wenn die Zeit in deiner Zone zwei Stunden vor der UTC liegt, wird diese als UTC+2 gekennzeichnet.

Zeitumrechnung zwischen Zeitzonen

Wenn wir mit Zeitdaten arbeiten, taucht oft die Notwendigkeit auf, Zeit von einer Zone in eine andere anzupassen. Zum Beispiel hast du den Start einer Marketing-Kampagne auf einem Server geplant, der nach UTC läuft, möchtest aber, dass sie genau um 9 Uhr morgens in New York (UTC-5) startet. Hier kommen Zeitzonen ins Spiel.

Um diesen Prozess zu erleichtern, stellt Python die Bibliothek pytz bereit, die bei der Konvertierung von Zeit zwischen Zeitzonen hilft. Lass uns gemeinsam Beispiele für ihre Nutzung ansehen.

2. Arbeit mit Zeitzonen in Python

Verwendung von pytz für das Management von Zeitzonen

Nach der Installation kannst du mit pytz experimentieren. Importiere die Bibliothek zusammen mit datetime:

Python

from datetime import datetime
import pytz

Aktuelle Zeit in einer bestimmten Zeitzone abrufen

Lass uns herausfinden, welche Zeit gerade in New York ist:

Python

# Erstelle ein Zeitzonen-Objekt für New York
ny_tz = pytz.timezone('America/New_York')

# Hol dir die aktuelle Zeit in UTC
utc_now = datetime.now(pytz.utc)

# Konvertiere UTC-Zeit in New York Zeit
ny_time = utc_now.astimezone(ny_tz)

# Drucke das Ergebnis
print("Aktuelle Zeit in New York:", ny_time)

Dieser Code konvertiert die aktuelle UTC-Zeit in die Zeit von New York, die dann in einem lesbaren Format ausgegeben wird.

Zeitzonenübergreifende Zeitkonvertierung

Stell dir vor, du hast ein Datum für ein wichtiges Ereignis in London und möchtest wissen, wann es in Tokio stattfindet.

Python

# Ereigniszeit in London
event_time = datetime(2023, 10, 31, 15, 0, 0, tzinfo=pytz.utc).astimezone(pytz.timezone('Europe/London'))

# Konvertiere die Zeit nach Tokio
tokyo_tz = pytz.timezone('Asia/Tokyo')
event_time_tokyo = event_time.astimezone(tokyo_tz)

print("Ereigniszeit in Tokio:", event_time_tokyo)

3. Fortgeschrittene Arbeit mit Zeitzonen in Python

Liste der verfügbaren Zeitzonen

Mit pytz.all_timezones kannst du eine Liste aller von der Bibliothek pytz unterstützten Zeitzonen erhalten.

Python

import pytz

print("Beispiel für Zeitzonen:")
for timezone in pytz.all_timezones[:5]:  # Zeige die ersten 5 Zeitzonen
    print(timezone)

Ausgabe (teilweise):

Beispiel für Zeitzonen:
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Festlegen der Zeitzone und Erstellung eines `datetime` Objekts

Mit pytz.timezone() kannst du die gewünschte Zeitzone für Datum und Uhrzeit festlegen. Lass uns anschauen, wie man ein datetime-Objekt mit einer bestimmten Zeitzone erstellt.

Python

from datetime import datetime
import pytz

# Wähle die Zeitzone "Europe/Moscow"
moscow_timezone = pytz.timezone("Europe/Moscow")
current_time_moscow = datetime.now(moscow_timezone)
print("Aktuelle Zeit in Moskau:", current_time_moscow)

Berücksichtigung der Sommerzeit

Einer der wichtigen Aspekte von Zeitzonen ist die Berücksichtigung der Sommerzeit, was in pytz automatisiert ist. Zum Beispiel, wenn du mit Zeiten in den USA arbeitest, wendet die Bibliothek automatisch den Sommerzeitausgleich an, wenn er gültig ist.

Python

from datetime import datetime
import pytz

# Datum innerhalb der Sommerzeit
date_in_summer = datetime(2024, 7, 1, 12, 0, 0)
ny_timezone = pytz.timezone("America/New_York")
ny_summer_time = ny_timezone.localize(date_in_summer)
print("Sommerzeit in New York:", ny_summer_time)

# Datum außerhalb der Sommerzeit
date_in_winter = datetime(2024, 12, 1, 12, 0, 0)
ny_winter_time = ny_timezone.localize(date_in_winter)
print("Winterzeit in New York:", ny_winter_time)

Hier erkennt pytz automatisch, dass der 1. Juli in die Sommerzeit fällt, und wendet die Verschiebung um eine Stunde an.

Nützliche Funktionen für die Arbeit mit Zeitzonen

  • Alle Zeitzonen abrufen: pytz.all_timezones gibt eine Liste aller Zeitzonen zurück.
  • Umrechnung in UTC: Die Methode astimezone(pytz.utc) konvertiert jede Zeit in UTC.
  • Umwandlung von String-Zeit in datetime: Verwende datetime.strptime() für die Umwandlung von String-Zeit in datetime mit Zeitzonenzuweisung.
  • Zeitzonen aktualisieren: Zum Aktualisieren von Zeitzonen wird pytz.update() verwendet.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION