8

我有一个字符串形式的日期时间字符串:

2011-10-23T08:00:00-07:00

我如何将此字符串解析为日期时间对象。

我做了以下阅读文档:

date = datetime.strptime(data[4],"%Y-%m-%d%Z")

但是我得到了错误

  ValueError: time data '2011-10-23T08:00:00-07:00' does not match format '%Y-%m-%d%Z'

这很清楚。

但我不确定如何阅读这种格式。

有什么建议么。谢谢

编辑:另外,我必须补充一点,我只关心日期部分

4

1 回答 1

30

标准 datetime.datetime.strptime 存在时区定义问题。使用dateutil.parser

>>> from dateutil import parser
>>> parser.parse("2011-10-23T08:00:00-07:00")
datetime.datetime(2011, 10, 23, 8, 0, tzinfo=tzoffset(None, -25200))

如果你只关心日期部分,你可以不使用 dateutil.parser 试试:

>>> from datetime import datetime
>>> datetime.strptime(data[4].partition('T')[0], '%Y-%m-%d').date()
datetime.date(2011, 10, 23)
于 2012-06-11T18:11:37.933 回答