将带时区缩写的非UTC时间字符串转换为python中的UTC时间,同时考虑夏令时

2024-04-19 18:08:47 发布

您现在位置:Python中文网/ 问答频道 /正文

由于时区缩写,我很难将非UTC时间的字符串表示形式转换为UTC。在

{似乎更新了。如果是这样的话,也许我也应该考虑到这一点。)

我一直在尝试用datetutil和pytz来解决这个问题,但一直没有找到任何运气。在

建议或解决办法将不胜感激。在

string = "Jun 20, 4:00PM EDT" 

我想将其转换为UTC时间,适当时考虑夏时制。

更新:找到了一些可以帮助更有经验的用户回答问题的参考资料

本质上,我可以想象解决方案的一部分执行this的相反操作。在

最终更新(重要)

取自dateutil docs examples。在

一些基于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.结合使用,您将有一个解决此问题的方法。


Tags: 字符串datetimeparse时间sep形式utctzinfo
1条回答
网友
1楼 · 发布于 2024-04-19 18:08:47

使用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)

相关问题 更多 >