python-3.x - 如何转换 ISO 日期格式 2020-02-22T00:00:00+01:00 并在 python 中使用 datetime 提取年份?
问题描述
我正在从州获取日期的 API 文档:
所有日期/时间属性均以 ISO 8601 格式指定,例如 YYYY-MM-DDTHH:MM:SSZ(UTC 时间)或 YYYY-MM-DDTHH:MM:SS+hh:mm(其中 hh:mm 指定时间偏移量来自UTC)。未指定时区信息有效,但结果未定义。
当我尝试使用 datetime.fromisoformat 进行转换时,它会给出错误提示“值必须是 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'代表时差??
解决方案
我的问题是我获取的一些数据是空的,所以为了解决这个问题,我在转换之前检查了每个数据是否是字符串值:
if isinstance(closed_date, str):
converted_date = datetime.fromisoformat(closed_date).date()
year = converted_date.year
推荐阅读
- amazon-web-services - 如何在放大中设置 lambda 函数的触发器?
- javascript - 对 jquery 中的 css 函数 @media screen 和 (max-width: 768px) 有任何倡议吗?
- debugging - Typo3 更新:Partial 不呈现变量内容,除非使用 f:debug
- java - Java -- 如何使用 args[] 调用方法?
- python - 为什么 tensorflow.map 不能正常工作?
- macos - 如何检测条形码扫描仪(模拟 USB 键盘输入)数据来自什么
- sas - 如何在没有读取权限的情况下在 SAS 中执行 txt 文件?
- python - 无法让 findstr 与在 Windows 上运行的子进程一起工作
- ios - 显示 UIAlert 会使应用程序崩溃吗?
- audio - PCM / WAVE 文件样本到实际声音/频率