python - 使用 strptime() 解析日期/时间字符串时如何保留时区?

标签 python datetime timezone

我有一个来自 Blackberry 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

我确实阅读了 this page显然 datetime.strptime 默默地丢弃了 tzinfo,但是,我检查了文档,但我找不到任何有此效果的文档 here .

有什么方法可以让 strptime() 与时区配合得很好?

最佳答案

我建议使用 python-dateutil .到目前为止,它的解析器已经能够解析我向它抛出的所有日期格式。

>>> from dateutil import parser
>>> parser.parse("Tue Jun 22 07:46:22 EST 2010")
datetime.datetime(2010, 6, 22, 7, 46, 22, tzinfo=tzlocal())
>>> parser.parse("Fri, 11 Nov 2011 03:18:09 -0400")
datetime.datetime(2011, 11, 11, 3, 18, 9, tzinfo=tzoffset(None, -14400))
>>> parser.parse("Sun")
datetime.datetime(2011, 12, 18, 0, 0)
>>> parser.parse("10-11-08")
datetime.datetime(2008, 10, 11, 0, 0)

等等。不用处理 strptime() 格式的废话......只要给它一个日期,它就会做正确的事。

关于python - 使用 strptime() 解析日期/时间字符串时如何保留时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305413/

相关文章:

python - MySQL连接器无法正常工作并给出错误

Python 可迭代队列

python - 适用于 Python 的可靠时区库或 Web 服务

jquery - 使用 jQuery datepicker 计算时区

Python - 新的初学者问题,示例文件中的语法无效

python - 全局变量声明Python

mysql - mysql 中的日期时间数据类型

mysql - 如何仅使用日期从 DATETIME 列中进行选择?

c# - 在 SQL 查询中传递 DECLARE 参数

java - TZupdater 因 tzdata2016g 版本而失败