Django models 模型中的日期格式

Django models 模型中的日期格式,django-models,Django Models,您好,如何更改模型中的日期格式 例如:我有 date=models.DateField(空白=True,空=True) 默认为yyyy-mm-dd格式如何将其更改为dd-mm-yyyy格式。当您将日期表示为字符串,或希望将字符串解释为日期时,格式适用。日期是日期,没有“格式”。当您将日期表示为字符串时,或当您希望将字符串解释为日期时,格式适用。您可以在项目中使用和类似的设置 您可以在项目的settings.py文件中定义设置。例如: DATE_INPUT_FORMATS = ('%d-%m-%Y

您好,如何更改模型中的日期格式 例如:我有 date=models.DateField(空白=True,空=True)


默认为yyyy-mm-dd格式如何将其更改为dd-mm-yyyy格式。当您将日期表示为字符串,或希望将字符串解释为日期时,格式适用。

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

您可以在项目中使用和类似的设置

您可以在项目的
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')

您可以在项目中使用和类似的设置

您可以在项目的
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\u格式,如下所示:

DATE_FORMAT='d-m-Y'
这将使默认显示如下所示:

Feb 5, 2010 
05-02-2010
像这样:

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

您最好考虑输出的格式,而不是它的存储方式。
DateField
存储为相同类型的数据库本机列

如果确实需要,可以在
settings.py
中设置
DATE\u格式,如下所示:

DATE_FORMAT='d-m-Y'
这将使默认显示如下所示:

Feb 5, 2010 
05-02-2010
像这样:

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

那么这是怎么回事?正如我所说,“当你把日期表示成一个字符串,或者当你想把一个字符串解释成一个日期的时候”。那么这是关于什么的呢?正如我所说,“当您将日期表示为字符串,或者当您希望将字符串解释为日期时”。您可以在settings.py文件中使用它(例如DATETIME_FORMAT='nj,Y,P')。您可以在这里找到允许的选项:在settings.py文件中使用它(例如DATETIME_FORMAT='nj,Y,P')。您可以在此处找到允许的选项: