模型中的日期格式

时间:2010-02-10 14:32:31

标签: django-models

您好我如何更改模型中的日期格式 对于Eg:我有 date = models.DateField(blank = True,null = True)

默认情况下,yyyy-mm-dd格式如何将其更改为dd-mm-yyyy格式

3 个答案:

答案 0 :(得分:2)

日期是日期,没有“格式”。当您将日期表示为字符串时,或者您希望将字符串解释为日期时,格式适用。

答案 1 :(得分:1)

您可以使用DATE_INPUT_FORMATS以及项目的类似设置。

您可以在项目的settings.py文件中定义设置。例如:

DATE_INPUT_FORMATS = ('%d-%m-%Y', '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y',
                      '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y',
                      '%B %d, %Y', '%d %B %Y', '%d %B, %Y')

答案 2 :(得分:0)

最好不要担心输出格式,而不是存储方式。 DateField存储为数据库的相同类型的本机列。

如果您真的想要这样,可以在DATE_FORMAT中设置settings.py,如下所示:

DATE_FORMAT='d-m-Y'

这样做的默认显示如下:

Feb 5, 2010 

看起来像这样:

05-02-2010

现在当然还有其他地方会被覆盖,比如管理员应用程序和默认表单小部件,所以这并不是说这是解决所有问题的完全解决方案。习惯使用datetime.datetime.strftime()就像这样:

>>> # using one of my own apps as an example where 'created' is a DateTimeField
>>> r.created
datetime.datetime(2010, 1, 28, 10, 5, 19, 38963)
>>> print r.created # default output (this is a Python default)
2010-01-28 10:05:19.038963
>>> print datetime.datetime.strftime(r.created, "%m-%d-%Y") # forcing it to m-d-Y format
01-28-2010