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

问题描述:

我有isoformat日期在数据库中,但是%Y-%m-%d当日期到模板过去了,它出来的东西像Oct. 16, 2011如何更改默认的Django日期模板格式?

反正是有,我可以操纵的格式来我想做的事情?

+0

我不知道如何在设置文件中更改它 –

+3

您改变其他所有设置的方式也一样。 –

+2

链接文档是不是一个真正的答案,所以downvoted这一点,upvoted medmunds的回答。 – neuronet

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

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

给出:

生日:1月29日,在1983年date filter docs

更多格式的例子。

+0

我认为这只有在日期提供为日期时间对象时才有效。如果它只是从视图传递的字符串呢? –

+0

对于包含的日期/时间的任意字符串,我可能解析它到视图代码蟒日期时间。 (甚至更早如果可能的话 - 无论是日期字符串第一次来到我的代码中),但是,如果你真的想用字符串日期时间传递给你的Django模板,[这个答案](http://*.com/a/ 33188293/647002)看起来很有帮助。 – medmunds

+0

好的答案,我接受它。 ;) – neuronet

同时设置DATE_FORMATUSE_L10N

为了使整个站点的变化在Django 1.4.1添加:

DATE_FORMAT = "Y-m-d" 

settings.py文件并编辑:

USE_L10N = False 

因为本地化覆盖DATE_FORMAT

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

为了在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))