Django UTC时间未转换

时间:2017-03-03 13:55:21

标签: django

我无法将UTC时间转换为EST时间。我已经在我的服务器shell中成功完成了它,但是当我在我的视图中执行完全相同的操作时,它会继续打印UTC时间,不知道我缺少什么。

views.py

from django.utils import timezone
import pytz

def today():
    today_utc = timezone.now()
    est = pytz.timezone('US/Eastern')
    return today_utc.astimezone(est)

def projections(request):
    todays_date = today()
    context = {'todays_date':todays_date}
    return render(request, 'index.html', context)

在我的模板中我只做一个简单的{{todays_date}},但它会继续打印出UTC时间。

更新: 添加时区模板标签可以解决这个问题,但我认为我的功能可以解决这个问题。仍然有兴趣知道我做错了什么......

{% load tz %}
{% timezone "US/Eastern" %}
    {{todays_date}}
{% endtimezone %}

3 个答案:

答案 0 :(得分:0)

您需要从settings.py设置时区。

USE_TZ = False

TIME_ZONE = 'US/Eastern'

答案 1 :(得分:0)

您需要为用户设置当前时区以获取转换时间。执行此操作的Django documentation provides an example middleware

答案 2 :(得分:-1)

尝试使用:

{{ todays_date|timezone:"America/New_York" }}

请参阅documentation