0

我在尝试解析检查卷的最后备份的 EC2 脚本返回的日期时遇到问题。

我将当前字符串格式作为字符串返回,我想将其解析为 datetime 对象,但由于返回字符串中的额外字符,datetime.strptime无法正常工作。有没有办法将字符串放入datetime对象中而不必使用dateutils,因为我也遇到了问题。

这是返回的日期字符串:

2013-06-26T02:01:05.000Z

这是我试图解析它的代码:

startTime = datetime.strptime(s.start_time, '%Y-%m-%dT%H:&M:%S.%fZ')

显然这不起作用,因为当我尝试打印 startTime 时它什么也不做。

4

2 回答 2

1

我认为这是一个错字,而不是%您使用&.

'%Y-%m-%dT%H:&M:%S.%fZ'
             ^
             |
         this is wrong

演示:

>>> strs = "2013-06-26T02:01:05.000Z"
>>> datetime.strptime(strs, '%Y-%m-%dT%H:%M:%S.%fZ')
datetime.datetime(2013, 6, 26, 2, 1, 5)
于 2013-06-26T14:56:55.830 回答
0

您的格式有误;不是&M但是%M

datetime.strptime(t, '%Y-%m-%dT%H:%M:%S.%fZ')

更正后的格式可以正常工作:

>>> t = '2013-06-26T02:01:05.000Z'
>>> from datetime import datetime
>>> datetime.strptime(t, '%Y-%m-%dT%H:&M:%S.%fZ')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mj/Development/Libraries/buildout.python/parts/opt/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '2013-06-26T02:01:05.000Z' does not match format '%Y-%m-%dT%H:&M:%S.%fZ'
>>> datetime.strptime(t, '%Y-%m-%dT%H:%M:%S.%fZ')
datetime.datetime(2013, 6, 26, 2, 1, 5)
于 2013-06-26T14:56:25.813 回答