我有一个使用IPDDump创建的黑莓IPD备份的CSV转储文件。 在这里的日期/时间字符串看起来像这样 (其中EST
是澳大利亚时区):Python strptime()和时区?
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
。
我没读this page,显然datetime.strptime
将丢弃tzinfo
,但是,我查了资料,我无法找到任何记录here这种效果。
我已经能够使用第三方Python库dateutil获得解析日期,但是我仍然好奇我是如何错误地使用内置的strptime()
?有没有办法让strptime()
与时区一起玩?
难道你不能...将所有日期转换为格林威治标准时间? – Robus 2010-07-22 02:48:42
@Robus:嗯,我希望这样做 - 但我认为strftime/datetime可以以某种方式做到这一点?无论如何,我需要存储/解析日期时间位于EST时区的事实,或者它们发生在我身上的任何时区。该脚本需要能够解析具有时区信息的通用日期时间(例如,ETC可以是任何其他时区)。 – victorhooi 2010-07-22 03:00:15
EST也是美国时区的缩写。 (同样,BST既是英国的也是巴西的时区缩写。)这样的缩写本质上是不明确的。相反,请使用相对于UTC/GMT的偏移量。 (如果需要支持缩写,则需要使映射区域依赖,并且这是一个凌乱的鼠洞。) – 2010-07-22 08:14:00