Python 3.6.2 ValueError:时间数据与格式不匹配

时间:2017-09-20 01:47:57

标签: python datetime strptime

我正在使用Python 3.6.2并尝试使用time.strptime转换此字符串:

  

2017-08-07 07:09:31.024719 + 00:00

使用ldap3模块从查询从Active Directory返回的

我发出以下命令:

from time import strptime
strptime('2017-08-07 07:09:31.024719+00:00', '%Y-%m-%d %H:%M:%S.%f%z')

我得到了:

  

ValueError:时间数据' 2017-08-07 07:09:31.024719 + 00:00'不符合格式'%Y-%m-%d%H:%M:%S。%f%z'

根据文件,我相信这应该有用吗?此外,我打算使用timedelta添加偏移量,然后在控制台中将其显示给用户。

2 个答案:

答案 0 :(得分:0)

我已经在python shell中完成了这个,如果+00:00 meens UTC,它似乎可以解决你的问题。

import datetime.datetime
date_string = '2017-08-07 07:09:31.024719+00:00'
date_string = date_string.replace('+00:00','+0000')
datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S.%f%z')

它返回:

datetime.datetime(2017, 8, 7, 7, 9, 31, 24719, tzinfo=datetime.timezone.utc)

答案 1 :(得分:0)

你提到的字符串有点奇怪。您需要单独指定+0000

>>> strptime('2017-08-07 07:09:31.024719 +0000', '%Y-%m-%d %H:%M:%S.%f %z')
time.struct_time(tm_year=2017, tm_mon=8, tm_mday=7, tm_hour=7, tm_min=9, tm_sec=31, tm_wday=0, tm_yday=219, tm_isdst=-1)