Die Handhabung von Zeitzonen ist immer ein wenig verwirrend. In Ihrem Beispiel waren Sie nicht spezifisch für Ihre Bedürfnisse, da sie sich auf die Zeitzone beziehen.
Feste der Zeitzonen:
Eine Möglichkeit, zu lesen, was Sie ist geschrieben, dass die Zeitzoneninformationen in der Zeichenfolge immer GMT-00:00
ist. Wenn die Zeitzone immer gleich ist, dann ist es eine einfache Sache, eine strptime
Zeichenfolge zu bauen, wie:
dt.datetime.strptime(date, '%a %b %d %H:%M:%S GMT-00:00 %Y')
Dies keine Mühe macht die Zeitzone zu interpretieren, da sie fixiert ist. Dies wird Ihnen Zeitzone naiv datetime
geben. Und da Ihr Beispiel sofort die datetime
in eine timetuple
konvertiert, nehme ich an, dies ist das gewünschte Ergebnis.
Zum Test:
die Zeitzone Interpretieren Offset:
Wenn Sie nicht GMT Zeitzonen in Ihrem Zeitstempel haben, und wollen die Informationen erhalten, können Sie tun:
def convert_to_datetime(datetime_string):
# split on spaces
ts = datetime_string.split()
# remove the timezone
tz = ts.pop(4)
# parse the timezone to minutes and seconds
tz_offset = int(tz[-6] + str(int(tz[-5:-3]) * 60 + int(tz[-2:])))
# return a datetime that is offset
return dt.datetime.strptime(' '.join(ts), '%a %b %d %H:%M:%S %Y') - \
dt.timedelta(minutes=tz_offset)
Diese Funktion nimmt Ihre Zeit Zeichenfolge und verwenden Sie die UTC
Offset. (z. B. -00:00
). Es analysiert die Zeitzoneninformationen aus der Zeichenfolge und fügt dann die resultierenden Minuten und Sekunden zurück in die datetime
, um es UTC
relativ zu machen.
Zum Test:
>>> print(convert_to_datetime("Sat Apr 14 21:05:23 GMT-00:00 2018"))
2018-04-14 21:05:23
>>> print(convert_to_datetime("Sat Apr 14 21:05:23 PST-08:00 2018"))
2018-04-15 05:05:23
Zeitzone beachten:
Die obigen Codes gibt ein UTC
relative Zeitzone naiven datetime
. Es wenn Sie eine Zeitzone bewusst datetime
benötigen, dann können Sie das tun, mit:
datetime.replace(tzinfo=pytz.UTC))
Zum Test:
>>> import pytz
>>> print(convert_to_datetime("Sat Apr 14 21:05:23 GMT-00:00 2018").replace(tzinfo=pytz.UTC))
2018-04-14 21:05:23+00:00
Welche Dokument beziehen Sie sich? – AlG
Mögliches Duplikat von http://stackoverflow.com/questions/79797/how-do-i-convert-local-time-to-utc-in-python? – AlG
hier ist der Link zu dem Dokument: https: //docs.python.org/3/library/datetime.html – user1224224