datetime.strptime() 抛出'不匹配格式'错误

18 投票
3 回答
27373 浏览
提问于 2025-04-16 17:03

我得到了

time data '19/Apr/2011:22:12:39' does not match format '%d/%b/%y:%H:%M:%S'

当我使用 datetime.strptime('19/Apr/2011:22:12:39','%d/%b/%y:%H:%M:%S') 的时候

我哪里出错了?

3 个回答

6

你想要的是%Y,而不是%y。%Y表示你想要显示完整的年份,包括世纪,比如2023年;而%y则只显示年份的后两位,从00到99,比如23表示2023年。

12

你在检查的是两位数的年份(%y),而不是四位数的年份(%Y)。

32

试试这个格式 %d/%b/%Y:%H:%M:%S,因为现在 %y 表示的是 11。

你可以很简单地用 date 命令来“调试”日期时间格式(这里指的是在命令行中,而不是在 Python 里,假设你是在运行 GNU/Linux 或类似的系统):

date '+%d/%b/%Y:%H:%M:%S'
05/May/2011:09:00:41

撰写回答