如何在Python中解析带UTC偏移的时区?
假设我有一个时间格式,比如“2009-08-18 13:52:54-04”。我可以用下面这行代码来解析大部分内容:
datetime.strptime(time_string, "%Y-%m-%d %H:%M:%S")
不过,我无法处理时区部分。虽然有一个%Z可以处理像“EST”、“UTC”这样的文字时区,但我找不到可以解析“-04”这种格式的东西。
4 个回答
3
使用 Babel,特别是 parse_datetime 这个功能。
24
也许你可以使用 dateutil.parser.parse 这个方法?这个方法在 wiki.python.org/WorkingWithTime 上也有提到。
>>> from dateutil.parser import parse
>>> parse("2009-08-18 13:52:54-04")
datetime.datetime(2009, 8, 18, 13, 52, 54, tzinfo=tzoffset(None, -14400))
(这个问题是重复的吗?)
0
我最近也遇到了同样的问题,后来我用这段代码解决了它:
gmt_offset_str = time_string[-3:]
gmt_offset_seconds = int(gmt_offset_str)*60*60
timestamp = time.strptime(time_string[:-4], '%Y-%m-%d %H:%M:%S')
return time.localtime(time.mktime(timestamp)-gmt_offset_seconds)
我也想知道有没有更好的解决办法。