Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiere ich UTC-Datetime-Strings in lokale Zeitzonen in Python?

Wie konvertiere ich UTC-Datetime-Strings in lokale Zeitzonen in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-11-30 10:32:13484Durchsuche

How to Convert UTC Datetime Strings to Local Timezones in Python?

Konvertieren von UTC-Datums-/Uhrzeitzeichenfolgen in lokale Datums- und Uhrzeitangaben

Frage:

So konvertieren Sie eine UTC Datum/Uhrzeit-Zeichenfolge, die als Zeichenfolge in Bigtable von App Engine gespeichert ist, in eine Datum/Uhrzeit-Zeichenfolge im korrekten Endbenutzerverzeichnis umwandeln Zeitzone?

Antwort:

Um eine UTC-Datumszeitzeichenfolge in eine Datumszeit in der richtigen Zeitzone des Benutzers umzuwandeln, kann man die Python-Dateutil-Bibliothek verwenden. Diese Bibliothek stellt tzinfo-Implementierungen auf Basis einer Zoneinfo-Datenbank (Olson) bereit und ermöglicht eine einfache Referenzierung von Zeitzonenregeln anhand kanonischer Namen.

Implementierung:

from datetime import datetime
from dateutil import tz

# Hardcode zones:
from_zone = tz.gettz('UTC')
to_zone = tz.gettz('America/New_York')

# Auto-detect zones:
from_zone = tz.tzutc()
to_zone = tz.tzlocal()

# Create a datetime object from the UTC string
utc = datetime.strptime('2011-01-21 02:37:21', '%Y-%m-%d %H:%M:%S')

# Convert the datetime object to UTC timezone
utc = utc.replace(tzinfo=from_zone)

# Convert the datetime object to the user's timezone
local = utc.astimezone(to_zone)

Empfohlener Speicher für Zeitzone Informationen:

  • "-5:00" oder "EST": Diese Methode ist einfach, aber begrenzt, da sie einen konstanten Offset für die Zeitzone des Benutzers annimmt.
  • Kanonische Namen: Die Verwendung kanonischer Namen aus der Olson-Datenbank ist flexibler und zeitzonenbewusster Berücksichtigung historischer Änderungen in Zeitzonen. Die Python-Dateutil-Bibliothek ermöglicht die Referenzierung von Zeitzonen durch kanonische Namen.

Zum Beispiel kann „-5:00“ in „Amerika/New_York“ umgewandelt werden mit:

import pytz
est = pytz.timezone("America/New_York")
est_name = est.zone

Das obige ist der detaillierte Inhalt vonWie konvertiere ich UTC-Datetime-Strings in lokale Zeitzonen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn