由于时区缩写,我很难将非UTC时间的字符串表示转换为UTC。
(更新:似乎是timezone abbreviations may not be unique。如果是这样,也许我也应该考虑将此考虑在内。)
我一直在尝试使用datetutil和pytz寻找方法,但没有任何运气。
建议或解决方法将不胜感激。
string = "Jun 20, 4:00PM EDT"
我想将其转换为UTC时间,在适当时考虑夏令时。
更新:找到一些可以帮助更有经验的用户回答Q的参考资料。
基本上,我会想象解决方案的一部分与this相反。
最终更新(重要)
一些基于date命令的简单示例,使用TZOFFSET字典提供BRST时区偏移。
parse(“Thu Sep 25 10:36:28 BRST 2003”,tzinfos = TZOFFSETS) datetime.datetime(2003,9,25,10,36,28, tzinfo = tzoffset('BRST',-10800))
解析(“2003年9月25日星期五10:36:28 BRST”,tzinfos = TZOFFSETS) datetime.datetime(2003,9,25,10,36,28, tzinfo = tzoffset('BRST',-10800))
将其与库such as found here.相结合,您就可以找到解决此问题的方法。
答案 0 :(得分:5)
将Nas Banov's excellent dictionary映射时区缩写用于UTC偏移量:
import dateutil
import pytz
# timezone dictionary built here: https://stackoverflow.com/a/4766400/366335
# tzd = {...}
string = 'Jun 20, 4:00PM EDT'
date = dateutil.parser.parse(string, tzinfos=tzd).astimezone(pytz.utc)