我在数据库中有开始日期字段作为日期(不是日期时间)。在 forms.py 中的保存方法中,我datetime.strptime(date_string, '%Y-%m-%d')
用于将字符串转换为日期。该方法返回我格式化的日期和时间,即“2006-08-03 00:00:00”。
我只想要日期而不想要时间。因为我收到一个“无效的日期格式错误”说“它必须是 YYYY-MM-DD 格式”,所以我对此感到沮丧。谁能帮我解决这个问题?
我认为您需要日期对象而不是日期时间。尝试使用 datetime 对象上的 date() 方法将日期时间转换为日期
from datetime import datetime
datetime.strptime('2014-12-04', '%Y-%m-%d').date()
Iazy functor 的回答非常有帮助。对于想要将其用作模板标签的人:
from django import template
from datetime import datetime
register = template.Library()
@register.filter(name='todate')
def convert_str_date(value):
return datetime.strptime(value, '%Y-%m-%d').date()
然后在您的 HTML 中导入您的 template.py 并将其用作:
{{ date_in_str|todate }}
Output: 2021.01.22
如果要更改日期格式:
{{ date_in_str|todate|date:"d N Y" }}
Output: 22 Jan. 2021