好的简单问题(我认为)。
我有一个 DateTime 字段(auto_add_now),当输出到模板时
{{ edited|date:"DATETIME_FORMAT" }}
我得到“2012 年 9 月 16 日下午 12:01”的预期结果
但不幸的是,由于我使用的是 Backbone.js 并且需要使用 JSON 传递日期时间,并且由于它仅用于显示目的,所以事情稍微复杂一些,我决定将它作为一个不错的语言环境格式化字符串传递。所以我深入研究了代码并找到了模板标签使用的内容,这就是我设置的内容。
from django.utils.formats import date_format
return {
'created': date_format(self.created, 'DATETIME_FORMAT'),
}
但这以“2012 年 9 月 16 日下午 5:01”结束
我感觉它与模板标签上的以下内容有关
@register.filter(expects_localtime=True, is_safe=False)
我也尝试过,但结果相同
from django.utils import timezone
tz = timezone.get_current_timezone()
logger.info(tz)
logger.info(self.edited)
logger.info(format(self.edited, 'DATETIME_FORMAT'))
logger.info(self.edited.replace(tzinfo=tz))
logger.info(format(self.edited.replace(tzinfo=tz), 'DATETIME_FORMAT'))
这给了我这个
INFO: America/Chicago
INFO: 2012-09-16 17:01:52.921276+00:00
INFO: Sept. 16, 2012, 5:01 p.m.
INFO: 2012-09-16 17:01:52.921276-06:00
INFO: Sept. 16, 2012, 5:01 p.m.
所以,是的,我一定遗漏了一些东西,而且我一直在 django 文档中上下,找不到任何可以指出我做错了什么的东西。谢谢你的帮助。