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


100

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

有没有一种方法可以将格式调整为我想要的格式?

Answers:



275

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

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

给出:

生日:1983年1月29日

日期过滤器文档中有更多格式示例。


我认为这仅在提供date作为datetime对象时才有效。如果只是从视图传递的字符串怎么办?
Mohammed Shareef C 2016年

2
对于包含日期/时间的任意字符串,我可能会在视图代码中将其解析为python datetime。(或者,如果可能的话,甚至更早,只要该日期字符串首先到达我的代码中。)但是,如果您真的想使用字符串将日期时间传递给Django模板,则此答案很有帮助。
medmunds 16/12/13

完美的以上示例可在模板文件中使用。
Vinod Patidar,


20

只需使用此:

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

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


8

为了更改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) )  


6

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

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

该标签详情这里,更多的是根据给定的日期格式在这里

例:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.