Python批量转换YYYYMMDD日期 列表与字符串拼接报错解决
8位日期字符串批量转换格式问题
问题说明
现有一批产品预购日期数据,原始值为20220627这类8位字符串,编码规则:
- 前4位:年份
- 中间2位:月份
- 最后2位:日期
需要将所有日期转换为mm/dd/yyyy + 固定时间格式,转换示例:06/27/2022 12:00 AM。
最初编写的脚本仅支持单个日期转换,直接传入日期列表做批量处理时触发类型报错:
can only concatenate list (not "str") to list
报错原因是原处理逻辑针对单个字符串编写,当传入值为列表时,切片操作返回的是列表片段,无法直接和字符串做拼接运算。
最初的单日期处理代码如下:
dates = "20220627" year = dates[:4] month = dates[4:6] day = dates[6:] hour = "12:00 AM" result = month + "/" + day + "/" + year + " " + hour print(result)
解决方法
通过for循环遍历日期列表,对列表内的每个日期字符串单独执行切片、拼接逻辑即可完成批量转换,可直接运行的参考代码如下:
dates = ["20220627", "20210824", "20190306", "20180120", "20210512"] for date in dates: year = date[:4] month = date[4:6] day = date[6:] hour = "12:00 AM" result = month + "/" + day + "/" + year + " " + hour print(result)
代码运行输出:
06/27/2022 12:00 AM 08/24/2021 12:00 AM 03/06/2019 12:00 AM 01/20/2018 12:00 AM 05/12/2021 12:00 AM
内容的提问来源于stack exchange,提问作者Dudaros
相关产品推荐
相关产品推荐

