【问题标题】:Date format in models模型中的日期格式
【发布时间】:2011-01-15 07:13:27
【问题描述】:

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

默认是yyyy-mm-dd格式,怎么改成dd-mm-yyyy格式

【问题讨论】:

    标签: django-models


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    【解决方案3】:

    您最好不要担心输出的格式,而不是它的存储方式。 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
    

    【讨论】:

      猜你喜欢
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      相关资源
      最近更新 更多