带时区的默认日期时间字符串格式

时间:2013-02-27 19:52:36

标签: python date datetime

我正在使用默认的python datetime字符串格式和JSON webservice。

然后,我试图将它与实际日期时间进行比较。我也在使用pytz.utc时区。

这是我的字符串日期:

print date
2013-02-26 21:28:37.261134+01:00

尝试将我的字符串转换为日期时间(使用pytz编辑时区):

if datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f+%Z') < datetime.now(pytz.utc):

不幸的是,它不起作用。

ValueError: time data '2013-02-26 21:28:37.261134+01:00' does not match format '%Y-%m-%d %H:%M:%S.%f%Z'

有人能告诉我strptime格式的正确语法,使用我的日期吗?

1 个答案:

答案 0 :(得分:5)

基本上是因为datetime模块提前知道可用时区是什么。这有点蹩脚。

我建议使用dateutil。这是第三方软件包,但是它解析了你的字符串。

>>> import dateutil.parser
>>> dateutil.parser.parse('2013-02-26 21:28:37.261134+01:00')                                                                                                                                                                                                                  
datetime.datetime(2013, 2, 26, 21, 28, 37, 261134, tzinfo=tzoffset(None, 3600))