Konvertieren von Zeitstempeln aus dem Format „JJJJ-MM-TTTHH:MM:SS-hh:mm“ in Datetime-Objekte in Python kann die Verwendung der strptime-Methode aufgrund der Zeitversatzinformationen eine Herausforderung sein.
Im bereitgestellten Beispiel: strptime kann den Zeitstempel mit dem Offset „-07:00“ im Format „%Y-%m-%dT%H:%M:%S-%z“ nicht analysieren. Dies liegt daran, dass strptime die „%z“-Direktive für Zeitzonen in Python 2 nicht nativ unterstützt.
Problemumgehungsoptionen:
1. Ignorieren Sie die Zeitzone:
Wenn die Zeitzoneninformationen nicht entscheidend sind, können Sie sie ignorieren, indem Sie die Zeichenfolge bis zum Offset analysieren:
time_str = "2012-07-24T23:14:29-07:00" time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
2. Verwenden Sie das dateutil-Modul:
Alternativ bietet das dateutil-Modul eine robustere Parsing-Funktion, die Zeitzonen unterstützt:
from dateutil.parser import parse time_obj = parse(time_str)
Python 3-Unterstützung:
In Python 3.2 und höher gibt es eine verbesserte Unterstützung für die Zeitzonenbehandlung. Entfernen des letzten „:“ aus dem Offset und Ersetzen von „-“ durch „ „:
time_str = "2012-07-24T23:14:29-07:00" time_obj = datetime.datetime.strptime(''.join(time_str.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
Dadurch wird der Zeitstempel korrekt analysiert und ein Datetime-Objekt mit dem angegebenen Zeitzonenoffset erstellt.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich Zeitstempel mit Zeitzonen-Offsets in Python-Datetime-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!