我正在从状态中获取日期的 API 文档:
<块引用>所有日期/时间属性均以 ISO 8601 格式指定,例如YYYY-MM-DDTHH:MM:SSZ(UTC 时间)或 YYYY-MM-DDTHH:MM:SS+hh:mm(其中 hh:mm 指定与 UTC 的时间偏移)。不指定时区信息有效但结果未定义。
当我尝试使用 datetime.fromisoformat 进行转换时,它给出了 med 错误,说“值必须是 str”,即使它是一个字符串值。
closed_date = data['closeddate']
print('closeddate: ', closed_date) ##outputs: 2020-02-22T00:00:00+01:00
convertedDate = datetime.fromisoformat(closed_date).date()
year = convertedDate.year
输出值:
<块引用>2020-02-22T00:00:00+01:00
但它适用于这种格式的日期:
<块引用>2020-06-15T13:18:23.040000+02:00
我也试过:
convertedDateOfDeal = datetime.strptime(closed_date, '%Y-%m-%dT%H:%M:%S')
但这给了我错误:
<块引用>ValueError:未转换的数据仍然存在:+02:00
剩下的怎么换算:'+02:00'代表时差??
答案 0 :(得分:1)
我的问题是我获取的一些数据是空的,所以为了解决这个问题,我在转换之前检查了每个数据是否是一个字符串值:
if isinstance(closed_date, str):
converted_date = datetime.fromisoformat(closed_date).date()
year = converted_date.year