假设我有一个像"2009-08-18 13:52:54-04"这样的时区.我可以使用这样的一行解析大部分内容:
datetime.strptime(time_string, "%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
但是,我无法让时区工作.有一个%Z处理文本时区("EST","UTC"等),但我没有看到任何可以解析"-04"的东西.
con*_*nny 23
也许你可以使用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))
Run Code Online (Sandbox Code Playgroud)
(这个问题是否重复?)
我最近遇到了同样的问题并使用以下代码解决了它:
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)
Run Code Online (Sandbox Code Playgroud)
我也对更优雅的解决方案感兴趣。