You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用datetime.strptime转换日期时出现格式不匹配错误,求助

问题分析与解决

问题根源

你的代码有两个核心错误导致格式匹配失败:

  • 年份格式符错误:%y仅匹配两位年份(例如22),但你生成的日期是四位年份2022,需使用%Y(匹配四位年份)。
  • 格式顺序不匹配:你生成的日期字符串是年-月-日结构(如2022-09-1),但代码中使用的格式符是%y-%d-%m(对应年-日-月),顺序完全颠倒,导致无法匹配。
  • 额外问题:重复导入datetime模块,容易造成命名混淆。

修正后的代码

import pandas as pd
from datetime import datetime

dates_number = ['1','2','5','6','7','8','9','12','13','14','15','16','28','29','30']
# 用列表推导式简化日期生成
dates = [f'2022-09-{i}' for i in dates_number]
# 同样用列表推导式完成格式转换
datess = [datetime.strptime(date_str, '%Y-%m-%d').date() for date_str in dates]

print(datess)

关键修正点

  1. 将格式符从%y-%d-%m改为%Y-%m-%d,完全匹配你生成的YYYY-MM-DD格式日期字符串。
  2. 移除重复的datetime导入,仅保留from datetime import datetime,避免命名冲突。
  3. 使用列表推导式简化循环代码,提升可读性和效率。

内容的提问来源于stack exchange,提问作者Ahmet Yildirim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:46:07