将'July 31, 2021'转换为 YYYY-MM-DD 格式导致值错误:时间数据'July 31, 2021'与格式'%m %d, %Y'不匹配



我有一个web应用程序,使用Django作为后端。我使用python3中的datetime.strptime函数将日期转换为需要输入到Mysql数据库的格式。但我得到了错误:ValueError: time data 'July 31, 2021' does not match format '%m %d, %Y'

end_date = request.GET.getlist('end_date')[0]   # end_date = 'July 31, 2021' in the test case
end_date_converted = datetime.strptime(end_date, "%m %d, %Y").strftime("%Y-%m-%d")

如何将'July 31, 2021'转换为YYYY-MM-DD格式,以便将其保存到MYSQL日期列?

根据文档%m"月作为零填充的十进制数字">,而不是月份名称。你应该使用

%B %d, %Y

作为格式说明符。例如:

>>> datetime.strptime('July 31, 2021', '%B %d, %Y').strftime('%Y-%m-%d')
'2021-07-31'

将%m替换为%B,后者将解码月份全名

最新更新