【发布时间】:2012-06-24 00:39:09
【问题描述】:
由于时区缩写,我很难将非 UTC 时间的字符串表示形式转换为 UTC。
(更新:似乎timezone abbreviations may not be unique。如果是这样,也许我也应该考虑到这一点。)
我一直在尝试使用 datetutil 和 pytz 寻找解决此问题的方法,但没有任何运气。
建议或解决方法将不胜感激。
string = "Jun 20, 4:00PM EDT"
我想将其转换为 UTC 时间,并在适当的时候考虑夏令时。
更新:找到了一些可以帮助更有经验的用户回答问题的参考资料。
基本上,我会想象部分解决方案与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))
parse("2003 10:36:28 BRST 25 Sep Thu", tzinfos=TZOFFSETS) datetime.datetime(2003, 9, 25, 10, 36, 28, tzinfo=tzoffset('BRST', -10800))
将此与库 such as found here. 结合使用,您将找到解决此问题的方法。
【问题讨论】:
-
年份应该使用什么值?当前?
-
@beargle - 是的。我会假设所有这些输出都是当前的。
-
是的,时区缩写在世界范围内并不是独一无二的。你能假设一个国家吗?
-
看看@Nas Banov 的回答here
标签: python utc dst pytz python-dateutil