【问题标题】:How can I change the default Django date template format?如何更改默认的 Django 日期模板格式?
【发布时间】:2011-12-05 22:24:12
【问题描述】:

我在数据库%Y-%m-%d 中有 ISO 8601 格式的日期。但是,当将日期传递给模板时,它会显示为 Oct. 16, 2011

有没有一种方法可以让我随意调整格式?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    为了改变views.py文件中的日期格式,然后赋值给模板:

    # get the object details 
    home = Home.objects.get(home_id=homeid)
    
    # get the start date
    _startDate = home.home_startdate.strftime('%m/%d/%Y')
    
    # assign it to template 
    return render_to_response('showme.html', {'home_startdate':_startDate},  context_instance=RequestContext(request) )  
    

    【讨论】:

      【解决方案2】:

      如果您在 Django 模板中调用 Date 值时遇到错误,请试试这个

      {{ViewfieldValue.CreateModelValue|date:"M d, Y" }}
      

      【讨论】:

        【解决方案3】:
        {{yourDate|date:'*Prefered Format*'}}
        

        例子:

        {{yourDate|date:'F d, Y'}}
        

        对于首选格式:Built-in template tags and filters, date

        【讨论】:

          【解决方案4】:

          您需要date template filter

          例如:

          <td>Joined {{user.date_created|date:"F Y" }}<td>
          

          这将返回Joined December 2018

          【讨论】:

            【解决方案5】:

            如果您需要显示较短的日期和时间(11/08/2018 03:23 a.m.),您可以这样做:

            {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}
            

            此标签的详细信息是here,根据给定格式的日期的更多信息是here

            例子:

            <small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
            

            【讨论】:

              【解决方案6】:

              【讨论】:

              • 我不确定如何在设置文件中更改它
              • 链接到文档并不是一个真正的答案,所以对此投了反对票,而对 medmunds 的答案投了赞成票。
              【解决方案7】:

              就用这个吧:

              {{you_date_field|date:'Y-m-d'}}
              

              这将显示类似 2016-10-16 的内容。 您可以根据需要使用格式。

              【讨论】:

                【解决方案8】:

                同时设置DATE_FORMATUSE_L10N

                要在 Django 1.4.1 中对整个站点进行更改,请添加:

                DATE_FORMAT = "Y-m-d"
                

                到您的settings.py 文件并编辑:

                USE_L10N = False
                

                因为 l10n 覆盖 DATE_FORMAT

                这记录在:https://docs.djangoproject.com/en/dev/ref/settings/#date-format

                【讨论】:

                  【解决方案9】:

                  在您的模板中,您可以使用 Django 的 date 过滤器。例如:

                  <p>Birthday: {{ birthday|date:"M d, Y" }}</p>
                  

                  给予:

                  生日:1983 年 1 月 29 日

                  date filter docs 中的更多格式示例。

                  【讨论】:

                  • 我认为这只有在日期作为日期时间对象提供时才有效。如果它只是一个从视图传递过来的字符串呢?
                  • 对于包含日期/时间的任意字符串,我可能会将其解析为视图代码中的 python 日期时间。 (如果可能的话,甚至更早——无论日期字符串第一次出现在我的代码中的什么地方。)但是如果你真的想使用字符串将日期时间传递给你的 Django 模板,this answer 看起来很有帮助。
                  • 完美的上述示例用于模板文件。
                  猜你喜欢
                  • 2019-05-29
                  • 2016-01-25
                  • 2014-10-01
                  • 2017-08-28
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-03-15
                  相关资源
                  最近更新 更多