【发布时间】:2011-02-19 04:00:14
【问题描述】:
我正在尝试计算两个日期/时间之间的差异(以秒为单位),格式如下:
2010-05-11 17:07:33 UTC
2010-05-11 17:07:33 美国东部时间
time1 = '2010-05-11 17:07:33 UTC'
time2 = '2010-05-11 17:07:33 EDT'
delta = time.mktime(time.strptime(time1,"%Y-%m-%d %H:%M:%S %Z"))-\
time.mktime(time.strptime(time2, "%Y-%m-%d %H:%M:%S %Z"))
我遇到的问题是无法识别EDT,具体错误是
ValueError: time data '2010-05-11 17:07:33 EDT' does not match format '%Y-%m-%d %H:%M:%S %Z'
【问题讨论】:
-
您在寻找这个labix.org/python-dateutil 吗?它可能比你正在做的任何事情都简单。
-
感谢您的回答。但即使使用 pytz,我仍然无法找到更好的方法来解析字符串“EDT”等并将其转换为 pytz 的 obj,时区可以是任何 3-4 个字母的字符串缩写,但 pytz 使用“US/Eastern”。我是否需要构建一个映射来将缩写转换为“美国/东部”格式?这对我来说听起来太多了。谢谢,
-
我最终构建了一个包含以下条目的文本文件:> 然后使用从时间字符串中获得的字符串“EDT”搜索条目通过在文件中使用值 -04,我可以使用 mktime() 来获取以秒为单位的时间差。我仍然认为应该有一个更简单的方法来做到这一点......谢谢,