Rob*_*rne 13 django django-templates django-models
我的一个模型中有以下代码:
def shortDescription(self):
return self.name + ' ' + self.class_date.strftime("%I:%M")
Run Code Online (Sandbox Code Playgroud)
self.class_date是一个时区意识DateTimeField,self.class_date.is_aware()是True,USE_TZ是True.
shortDescription返回一个字符串,该字符串以UTC而不是默认时区提供时间,放入{{ aclass.class_date }}模板会在正确的区域中显示时间.
是strftime一直在努力的基础上,本地时间?或者这里还有什么?
Chr*_*att 38
当你直接引用类的日期时间的碎片%I或者%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")
Run Code Online (Sandbox Code Playgroud)
或者,您可以依赖date过滤器,它会自动为您执行此操作:
from django.template import defaultfilters
def shortDescription(self):
return self.name + ' ' + defaultfilters.date(self.class_date, 'g:i')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10890 次 |
| 最近记录: |