ChatGPT解决这个技术问题 Extra ChatGPT

如何更改默认的 Django 日期模板格式?

我在数据库 %Y-%m-%d 中有 ISO 8601 格式的日期。但是,当日期传递到模板时,它会显示为 Oct. 16, 2011

有没有办法可以将格式操纵为我想要的任何东西?


m
medmunds

在您的模板中,您可以使用 Django 的 date 过滤器。例如:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p>

给出:

生日:1983年1月29日

date filter docs 中有更多格式示例。


我认为这只有在日期作为日期时间对象提供时才有效。如果它只是从视图传递的字符串怎么办?
对于包含日期/时间的任意字符串,我可能会将其解析为视图代码中的 python 日期时间。 (或者如果可能的话甚至更早——无论日期字符串第一次出现在我的代码中的什么地方。)但是如果您真的想使用字符串将日期时间传递给您的 Django 模板,this answer 看起来很有帮助。
完美的上述示例可在模板文件中使用。
F
Flimm

date template tag

settings.DATE_FORMAT


我不确定如何在设置文件中更改它
链接到文档并不是一个真正的答案,因此对此投了反对票,而对 medmunds 的答案投了赞成票。
C
Ciro Santilli Путлер Капут 六四事

同时设置 DATE_FORMATUSE_L10N

要在 Django 1.4.1 中对整个站点进行更改,请添加:

DATE_FORMAT = "Y-m-d"

到您的 settings.py 文件并编辑:

USE_L10N = False

因为 l10n 覆盖 DATE_FORMAT

这记录在:https://docs.djangoproject.com/en/dev/ref/settings/#date-format


P
Peter Mortensen

只需使用这个:

{{you_date_field|date:'Y-m-d'}}

这将显示类似 2016-10-16 的内容。您可以根据需要使用格式。


P
Peter Mortensen

您需要一个 date template filter

例如:

<td>Joined {{user.date_created|date:"F Y" }}<td>

这将返回 Joined December 2018


C
Community

为了更改 views.py 文件中的日期格式,然后将其分配给模板:

# get the object details 
home = Home.objects.get(home_id=homeid)

# get the start date
_startDate = home.home_startdate.strftime('%m/%d/%Y')

# assign it to template 
return render_to_response('showme.html', {'home_startdate':_startDate},  context_instance=RequestContext(request) )  

P
Peter Mortensen

如果您需要显示较短的日期和时间(11/08/2018 03:23 am),您可以这样做:

{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}

此标记的详细信息是 here,有关给定格式的日期的更多信息是 here

例子:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>

P
Peter Mortensen
{{yourDate|date:'*Prefered Format*'}}

例子:

{{yourDate|date:'F d, Y'}}

对于首选格式:Built-in template tags and filters, date


P
Peter Mortensen

如果您在 Django 模板中调用 Date 值时遇到错误,请试试这个

{{ViewfieldValue.CreateModelValue|date:"M d, Y" }}