Python如何将'12/Sep/21'格式日期字符串转换为'2021-09-12'格式
错误原因
strptime解析格式与输入不匹配:输入日期用/做分隔符,原代码的解析格式用了空格,会直接抛出解析异常。strftime输出格式不符合需求:原代码输出的是日/月/年格式,和你需要的年-月-日格式不符。
正确实现
首先确保导入datetime模块,调整解析和输出的格式符即可:
import datetime dte1 = '02/Sep/21' # 按输入格式解析日期,分隔符对应为/ parse_dt = datetime.datetime.strptime(dte1, '%d/%b/%y') # 按目标格式输出 dte2 = parse_dt.strftime('%Y-%m-%d') print(dte2)
运行后输出结果为:2021-09-02
注意事项
如果运行时出现月份识别报错,大概率是你的系统locale不是英文,无法识别英文月份缩写,可在代码开头添加locale设置:
import locale # 强制时间解析使用英文locale locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
内容的提问来源于stack exchange,提问作者Chandra
相关产品推荐
相关产品推荐

