ValueError: time data '02/03/2022' does not match format '%d/%m/%y '

ValueError: time data '02/03/2022' does not match format '%d/%m/%y '

我是新手 python

我的代码是:


                    for report_date in REPORT_DATE_TYPES:
                        if report_date in result:
                            date = result[report_date].split(' ')[0]
                            date = datetime.strptime(date, '%d/%m/%y ')

但我收到一个错误:

raise ValueError("time data %r does not match format %r" %

ValueError:时间数据“02/03/2022”与格式“%d/%m/%y”不匹配

如何解决这个问题?

要指出您需要使用 %Y 的年份,并且在您提供的格式末尾还有一个额外的 space,它没有出现在日期中。试试 date = datetime.strptime(date, '%d/%m/%Y')

%y 仅指年份的最后 2 位数字,而不是示例中的整年。

20/03/21 的格式为 '%d/%m/%y20/03/2021 的格式是 '%d/%m/%Y(注意大写 Y),因此您只需要更新代码如下

for report_date in REPORT_DATE_TYPES:
   if report_date in result:
       date = result[report_date].split(' ')[0]
       date = datetime.strptime(date, '%d/%m/%Y ')

您可以找到每个标志的有用 table on this link

此错误表示格式和输入未对齐。 在此示例中,输入:'02/03/2022', 不匹配格式“%d/%m/%y”

为什么? 因为 %y 是有两个字母的年份,例如“22”而不是“2022”。 顺便说一句,输入的其余部分确实符合格式。

使用此 link 验证格式是否正确: https://www.geeksforgeeks.org/python-datetime-strptime-function/