Django 的时区感知输出显然只适用于渲染模板。有没有办法为返回 CSV 或 JSON 的响应获得相同的自动转换为当前活动时区?
似乎调用用于转换模板中的日期时间的基础函数是django.utils.timezone.template_localtime()
.源代码中紧挨着它是另一个实用程序函数 localtime
,它看起来像:
def localtime(value, timezone=None):
"""
Converts an aware datetime.datetime to local time.
Local time is defined by the current time zone, unless another time zone
is specified.
"""
...
因此,也许以下内容会起作用:
from django.utils.timezone import localtime, get_current_timezone
...
print localtime(obj.date_created, user.get_profile().timezone or get_current_timezone())