我正在使用Python 3.6.2并尝试使用time.strptime
转换此字符串:
使用ldap3模块从查询从Active Directory返回的2017-08-07 07:09:31.024719 + 00:00
。
我发出以下命令:
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添加偏移量,然后在控制台中将其显示给用户。
答案 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)