【问题标题】:Error with rendering datetime object in django templates在 django 模板中渲染日期时间对象时出错
【发布时间】:2012-06-25 19:35:55
【问题描述】:

对于博客应用程序,我试图获取已发布帖子的所有月份的列表,但在模板中找到了一组错误的月份。我四处乱窜,发现了以下结果,

>>> date_list = Entry.objects.filter().dates('pub_date','month') 

上面的代码,给了我一组正确的月份,

>>> date_list[6]
 datetime.datetime(2012, 6, 1, 0, 0, tzinfo=<UTC>)

月份表示六月,但是当使用模板渲染时,月份会减一,即“可能”

>>> t = Template("The month is {{ month|date:'m' }}  ")
>>> c = Context({"month": date_list[6]})
>>> t.render(c)
 u'The month is 05  '

而真正的价值是

 >>> date_list[6].month
   6

除了这个几个月的错误,一切都运行良好,我错过了一些基本的东西还是 django 模板引擎本身的错误?

【问题讨论】:

  • 如果你试试这个你会得到什么:t = Template("The month is {{ month|date:'SHORT_DATE_FORMAT' }} ")?

标签: python django datetime


【解决方案1】:

您的时区是?日期为 UTC,因此 UTC 时间中的 2012-06-01 00:00:00 仍然可以是另一个时区的前一天,例如东部时区的 2012-05-31 20:00:00。

这里是相关docs的链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 2017-01-31
    • 2017-05-21
    • 2017-07-03
    • 2017-11-13
    • 2020-08-04
    • 1970-01-01
    相关资源
    最近更新 更多