将utc时间字符串转换为datetime对象

时间:2012-02-24 15:58:13

标签: python python-2.7

我正在使用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

4 个答案:

答案 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].