默认的带时区的日期时间字符串格式
我正在使用默认的Python日期时间字符串格式,配合一个JSON网络服务。
然后,我想把这个字符串和一个实际的日期时间进行比较。而且我还在使用时区,使用的是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 个回答
7
其实这是因为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))