我的模型之一中有以下代码:
def shortDescription(self):
return self.name + ' ' + self.class_date.strftime("%I:%M")
self.class_date
是否具有时区意识DateTimeField
, self.class_date.is_aware()
is True
, USE_TZ
is True
.
ShortDescription 返回一个字符串,给出 UTC 时间而不是默认时区的时间,将{{ aclass.class_date }}
模板中显示正确区域的时间。
Is strftime
总是在基地工作,当地时间?或者这里还发生了什么?
当您直接引用日期时间的片段时,例如%I
or %M
,它直接使用它,没有区域设置转换。如果你包括%Z
你会看到时间到了UTC
。如果您想要区域设置感知的结果,则需要使用更有限的%X
,它将简单地输出针对区域设置转换的完整时间。
如果您需要更多,则必须将其转换:
from django.utils import timezone
def shortDescription(self):
class_date = timezone.localtime(self.class_date)
return self.name + ' ' + class_date.strftime("%I:%M")
或者,您可以依靠date
过滤器,它会自动为您执行此操作:
from django.template import defaultfilters
def shortDescription(self):
return self.name + ' ' + defaultfilters.date(self.class_date, 'g:i')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)