我正在使用Paypal API,我以下列格式返回时间戳。它尝试使用strptime将其解析为datetime对象,但是我收到以下错误:
(Pdb) datetime.strptime('2012-03-01T10:00:00Z','%Y-%M-%dT%H:%M:%SZ')
*** error: redefinition of group name 'M' as group 5; was group 2
另外,由于这种格式应该是非常标准的格式,因此没有可用的功能吗?
编辑:
好吧好像是一个错字。首先%M应为%m答案 0 :(得分:38)
来自dateutil的解析器是你的朋友。
你必须点击安装dateutil,但你已经保存了包和日期转换代码袋:
pip install python-dateutil
你可以这样使用它。
from dateutil import parser
ds = '2012-03-01T10:00:00Z' # or any date sting of differing formats.
date = parser.parse(ds)
你会发现你可以使用这个解析器处理几乎任何日期字符串格式,你会得到一个很好的标准python日期回来
答案 1 :(得分:11)
看起来你正在混合%M
(分钟)和%m
(月)。
答案 2 :(得分:4)
问题是您使用%M
两次。使用%m
表示月份:
>>> datetime.strptime('2012-03-01T10:00:00Z','%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2012, 3, 1, 10, 0)
答案 3 :(得分:2)
你有一个错字。 %M
使用了两次。你打算在这个月使用%m
。来自docs:
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].