【发布时间】:2011-01-15 07:13:27
【问题描述】:
您好,我如何更改模型中的日期格式 例如:我有 date = models.DateField(blank=True, null=True)
默认是yyyy-mm-dd格式,怎么改成dd-mm-yyyy格式
【问题讨论】:
标签: django-models
您好,我如何更改模型中的日期格式 例如:我有 date = models.DateField(blank=True, null=True)
默认是yyyy-mm-dd格式,怎么改成dd-mm-yyyy格式
【问题讨论】:
标签: django-models
日期是一个日期,没有“格式”。当您将日期表示为字符串或希望将字符串解释为日期时,格式适用。
【讨论】:
您可以为您的项目使用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')
【讨论】:
您最好不要担心输出的格式,而不是它的存储方式。 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
【讨论】: