Python时间格式转换报错求助:strptime格式匹配失败
解决时间格式匹配错误问题
错误原因分析
你的代码报错核心是格式串与输入时间的结构不匹配:
- 输入的时分秒用冒号分隔(
15:35:50),但原格式串写的是%H%M%S,缺失了冒号分隔符 - 输入的微秒前带有小数点(
.717),格式串需要对应.%f - 输入的时区(
+0530)前有空格,格式串里必须保留这个空格,写成%z
另外原代码的strftime格式用了%m/%d/%Y,会导致日期和月份顺序颠倒,且%H%M%S没有冒号,不符合你预期的2022/07/25 15:35:50格式。
修正后的代码
import datetime # 修正格式串,完全匹配输入时间的结构 dt = datetime.datetime.strptime("2022-07-25 15:35:50.717 +0530", "%Y-%m-%d %H:%M:%S.%f %z") # 按照目标格式输出时间 print(dt.strftime("%Y/%m/%d %H:%M:%S"))
代码说明
%Y-%m-%d %H:%M:%S.%f %z:精准对应输入字符串的每个结构,包含时分秒的冒号、微秒的小数点、时区前的空格%Y/%m/%d %H:%M:%S:严格按照你需要的yyyy/mm/dd HH/MM/SS格式生成输出字符串
内容的提问来源于stack exchange,提问作者keerthi c
相关产品推荐
相关产品推荐

