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