我也遇到了这个错误,所以我在处理 ISO 时间时创建了一个小函数。
def ISOtstr(iso):
dcomponents = [1,1,1]
dcomponents[0] = iso[:4]
dcomponents[1] = iso[5:7]
dcomponents[2] = iso[8:10]
tcomponents = [1,1,1]
tcomponents[0] = iso[11:13]
tcomponents[1] = iso[14:16]
tcomponents[2] = iso[17:19]
d = dcomponents
t = tcomponents
string = "{}-{}-{} {}:{}:{}".format(d[0],d[1],d[2],t[0],t[1],t[2])
return string
将您的 ISO 转换为字符串:
string = '2019-06-18T11:00:10.499378622Z'
date_string = ISOtstring(string)
date_obj = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
#Output
#datetime.datetime(2019, 6, 18, 11, 0, 10)
很可能有更好的方法来做到这一点。但我在处理 ISO 字符串时使用它。
如果你经常使用它,你可以把它作为一个单独的函数:
def ISOtdatetime(iso):
date_string = ISOtstring(iso)
date_obj = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
return date_obj
刚意识到我在第一次创建函数时有一些毫无意义的代码。它们已被删除。