2010-02-10 59 views
0

你好我如何改变模型 日期格式,例如:我有 日期= models.DateField(空白=真,空=真)日期格式模型

默认情况下它YYYY-MM-DD格式如何将其更改为dd-mm-yyyy格式

回答

2

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

+0

http://docs.djangoproject.com/en/dev/ref/forms/fields/#datetimefield 那么这是什么一回事 – seena 2010-02-10 14:40:22

+0

这是一回事,正如我所说的,“当你将日期表示为一个字符串,或者当你想将一个字符串解释为一个日期时”。 – 2010-02-10 15:41:09

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') 
+0

可以告诉我如何使用它......因为它没有给出 – seena 2010-02-10 14:48:32

+0

你可以在settings.py文件中使用它(例如DATETIME_FORMAT ='N j,Y,P')。你可以在这里找到允许的选项:http://docs.djangoproject.com/zh/dev/ref/templates/builtins/#ttag-now – 3lectrologos 2010-02-10 14:53:45

0

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

如果你真的想这样,你可以在你的settings.py设置DATE_FORMAT,就像这样:

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