Konvertieren UTC in CST in Python

Vaibhhav Khetarpal 10 Oktober 2023
  1. Verwendung das Moduls dateutil.tz zum Konvertieren von Datum und Uhrzeit von UTC in CST in Python
  2. Verwendung das Modul pytz, um Datum und Uhrzeit von UTC in CST in Python umzuwandeln
  3. Verwendung das Modul zoneinfo zum Konvertieren von Datum und Uhrzeit von UTC in CST in Python
Konvertieren UTC in CST in Python

Python speichert Datum und Uhrzeit auf sehr ausgeklügelte Weise. Es hat einen Datentyp, der speziell zum Speichern dieser Art von Daten verwendet wird. Darüber hinaus bietet Python auch ein datetime-Modul, das mehrere Klassen bietet, um Datum und Uhrzeit zu manipulieren.

Die Umrechnung in verschiedene Zeitzonen ist ein wesentlicher Bestandteil der Manipulation von Datum und Uhrzeit. In diesem Artikel werden wir zwei solcher Zeitzonen diskutieren, nämlich UTC und CST, und die verschiedenen Möglichkeiten, die erstere in die letztere umzuwandeln.

Das Modul datetime ist eine Notwendigkeit und muss importiert und in allen im folgenden Artikel erwähnten Methoden verwendet werden.

Verwendung das Moduls dateutil.tz zum Konvertieren von Datum und Uhrzeit von UTC in CST in Python

Das Modul dateutil aktiviert das Standardmodul datetime, indem es einige bedeutende Erweiterungen bereitstellt. Das Modul dateutil.tz liefert Zeitzonenimplementierungen, die eine Unterklasse des abstrakten Typs datetime.tzinfo sind.

Hier werden wir häufig die Funktion tz.gettz() verwenden, die im Wesentlichen ein Objekt der Zeitzone aus dem als Argument übergebenen String abruft.

Der folgende Code verwendet das Modul dateutil.tz, um das Datum und die Uhrzeit von UTC in CST in Python umzuwandeln.

import datetime
from dateutil import tz

from_zone = tz.gettz("UTC")
to_zone = tz.gettz("America/Chicago")
json_data = {"time": "2021-10-08T08:17:42Z"}
utc = datetime.datetime.strptime(json_data["time"], "%Y-%m-%dT%H:%M:%SZ")
utc = utc.replace(tzinfo=from_zone)
cst = utc.astimezone(to_zone)
print(utc)
print(cst)

Der obige Code liefert die folgende Ausgabe:

2021-10-08 08:17:42+00:00
2021-10-08 03:17:42-05:00

Verwendung das Modul pytz, um Datum und Uhrzeit von UTC in CST in Python umzuwandeln

Das Modul pytz unterstützt die allermeisten Zeitzonen und ist damit das perfekte Modul, um Datums- und Zeitkonvertierungsfunktionen bereitzustellen und Funktionen bereitzustellen, die einfache Zeitzonenberechnungen in der Python-Anwendungssoftware des Programmierers ermöglichen.

Darüber hinaus ermöglicht das Modul pytz die Erstellung intelligenter datetime-Objekte oder Instanzen, die ihre Zeitzone kennen. Das Modul pytz muss manuell installiert werden und kann mit dem Befehl pip ausgeführt werden.

Der folgende Code verwendet das Modul pytz, um das Datum und die Uhrzeit von UTC in CST in Python umzuwandeln

from datetime import datetime, timezone
import pytz

fmt = "%Y-%m-%d %H:%M:%S %Z%z"
e = pytz.timezone("US/Central")

time_from_utc = datetime.fromtimestamp(1607020200, tz=timezone.utc)
time_from = time_from_utc.astimezone(e)
time_from.strftime(fmt)
time_to_utc = datetime.fromtimestamp(1609785000, tz=timezone.utc)
time_to = time_to_utc.astimezone(tz=pytz.timezone("US/Central"))
print(time_to_utc)
print(time_to)

Der obige Code liefert die folgende Ausgabe:

2021-01-04 18:30:10+00:00
2021-01-04 12:30:10-06:00

Obwohl sowohl die Module dateutil.tz als auch pytz verwendet werden, um ähnliche Dinge in Python zu implementieren, weisen sie einige Unterschiede auf.

  • Das Modul pytz unterstützt fast alle Zeitzonen, deutlich mehr als das Modul dateutil.tz bietet.
  • Die Bibliothek des Moduls pytz ist deutlich optimierter.
  • Das Modul pytz ist historisch gesehen schneller als dateutil.tz, aber die Lücke hat sich in den letzten paar Updates verringert.
  • Die Verwendung des Moduls dateutil.tz wird in früheren Python-Versionen empfohlen, wenn das Modul pytz nicht stabil genug war.

Verwendung das Modul zoneinfo zum Konvertieren von Datum und Uhrzeit von UTC in CST in Python

Mit der Einführung von Python 3.9 kam das Modul zoneinfo, das die Installation anderer Bibliotheken von Drittanbietern zur Verwaltung von Zeitzonen überflüssig machte. Das Modul zoneinfo erledigt alles selbst.

Das Modul zoneinfo wird verwendet, um eine starke Zeitzonenimplementierung bereitzustellen, die, wie in PEP 615 spezifiziert, die Zeitzonendatenbank IANA unterstützen kann.

Der folgende Code verwendet das Modul zoneinfo, um Datum und Uhrzeit von UTC in CST in Python umzuwandeln.

# >= Python 3.9
from datetime import datetime
from zoneinfo import ZoneInfo

naive_datetime = datetime(2021, 10, 8, 12, 0, 0)
user_tz_preference = ZoneInfo("US/Central")

user_datetime = naive_datetime.replace(tzinfo=user_tz_preference)
user_datetime = datetime(2011, 10, 26, 12, tzinfo=ZoneInfo("US/Central"))
utc_datetime = user_datetime.astimezone(ZoneInfo("UTC"))
print(user_datetime.isoformat())
print(utc_datetime.isoformat())

Der obige Code liefert die folgende Ausgabe:

# 2021-10-08T12:00:00-06:00
# 2021-10-08T19:00:00+00:00
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Verwandter Artikel - Python DateTime