Python 3 - 使用时间偏移量解析时间字符串

时间:2012-05-27 10:21:48

标签: parsing datetime python-3.x timezone

如何使用python3将时间字符串(例如Sun May 27 13:02:04 +0200 2012)解析为UTC中的元组?我能得到的最接近的是time.strptime(str, '%a %b %d %H:%M:%S %z %Y'),但看起来偏移被解析但被忽略了。以上示例解析为:

time.struct_time(tm_year=2012, tm_mon=5, tm_mday=27, tm_hour=13, tm_min=1, tm_sec=35, tm_wday=6, tm_yday=148, tm_isdst=-1)

但我期待tm_hour=11

相关:Convert string timestamp (with timezone offset) to local time. . ? pythonParsing time string in Python。两者的答案都建议使用dateutil,但如果可能的话,我更喜欢使用标准库。

1 个答案:

答案 0 :(得分:2)

tm_hour = 11会不正确。无论偏移量是多少,时间戳中的时间都是13:02:04。

您要做的是将时间戳转换为GMT中的时间,标准库不会为您执行此操作。所以你只需要自己提取偏移量(这是微不足道的),然后从时间中减去它。

我还建议您使用日期时间库,日期/时间操作更容易,您可以从偏移量轻松创建timedelta对象,并从datetime对象中减去它。