我在数据库中有开始日期字段作为日期(不是日期时间)。在forms.py中的save方法中,我使用datetime.strptime(date_string, '%Y-%m-%d')
将字符串转换为日期。该方法返回格式化日期和时间,即“2006-08-03 00:00:00”。
我想要的是日期,没有时间。因为我收到“无效的日期格式错误”,说“它必须是YYYY-MM-DD格式”,所以我坚持这个并且感到沮丧。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:91)
我认为您需要日期对象而不是日期时间。 尝试使用datetime对象上的date()方法将datetime转换为日期
from datetime import datetime
datetime.strptime('2014-12-04', '%Y-%m-%d').date()
答案 1 :(得分:1)
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