我有一个来自黑莓 IPD 备份的 CSV 转储文件,使用 IPDDump 创建。这里的日期/时间字符串看起来像这样(其中 EST
是澳大利亚时区):
Tue Jun 22 07:46:22 EST 2010
我需要能够在 Python 中解析这个日期。起初,我尝试使用 datettime 中的 strptime()
函数。
>>> datetime.datetime.strptime('Tue Jun 22 12:10:20 2010 EST', '%a %b %d %H:%M:%S %Y %Z')
但是,由于某种原因,返回的 datetime
对象似乎没有任何 tzinfo
与之关联。
我确实在 这个页面 上读到 datetime.strptime
默默地丢弃 tzinfo
,但是,我检查了文档,但我找不到任何与此相关的内容记录 在这里。
有没有办法让 strptime()
与时区一起玩?
原文由 victorhooi 发布,翻译遵循 CC BY-SA 4.0 许可协议
datetime
模块文档 说:看到
[0:6]
了吗?这让你(year, month, day, hour, minute, second)
。没有其他的。没有提到时区。有趣的是,[Win XP SP2, Python 2.6, 2.7] 将您的示例传递给
time.strptime
不起作用,但如果您去掉“%Z”和“EST”,它就起作用了。也可以使用“UTC”或“GMT”代替“EST”。 “PST”和“MEZ”不起作用。令人费解。值得注意的是,这已经更新为 3.2 版,并且相同的文档现在还说明了以下内容:
请注意,这不适用于 %Z,因此大小写很重要。请参阅以下示例: