时间数据“2021年3月16日下午5:06”与格式“%d/%m/%Y%I:%m%p”不匹配

2024-09-24 22:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的Django项目中有一个名为this_rmg_date的变量

现在我正在尝试重新格式化它(用于将它保存在数据库的DateTimeField

print(this_rmg_date)
this_rmg_date = datetime.strptime(this_rmg_date, "%d/%m/%Y %I:%M %p")

这里print(this_rmg_date)在控制台中打印值,它是:03/16/2021 5:06 PM

但下一行出现了一个错误,它说:

ValueError at /input_industryinfo/
time data '03/16/2021 5:06 PM' does not match format '%d/%m/%Y %I:%M %p'

昨天,我做了几乎相同类型的代码,工作非常完美,我的代码的其他部分如下:stackOverflow-link

我如何解决这个问题


Tags: 项目django代码数据库datetimedate错误this
1条回答
网友
1楼 · 发布于 2024-09-24 22:24:39

16是一个无效的月份。您的输入以mm/dd/YYYY格式到达。试试这个:

this_rmg_date = '03/16/2021 5:06 PM'
this_rmg_date = datetime.strptime(this_rmg_date, "%m/%d/%Y %I:%M %p")
>>> this_rmg_date
datetime.datetime(2021, 3, 16, 17, 6)

您还可以使用第三方模块^{}的解析器,它可以处理以下问题:

from dateutil.parser import parse
>>> parse('03/16/2021 5:06 PM')
datetime.datetime(2021, 3, 16, 17, 6)
>>> parse('16/03/2021 5:06 PM')
datetime.datetime(2021, 3, 16, 17, 6)

但它在没有帮助的情况下只能做这么多:

>>> parse('04/03/2021 5:06 PM')
datetime.datetime(2021, 4, 3, 17, 6)
>>> parse('04/03/2021 5:06 PM', dayfirst=True)
datetime.datetime(2021, 3, 4, 17, 6)

相关问题 更多 >