时间数据'03/16/2021 5:06 PM'与格式'%d/%m/%Y %I:%M %p'不匹配



我有一个变量在我的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.

如何解决这个问题?

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)

您也可以使用第三方模块dateutil的解析器,它可以处理这个:

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)

最新更新