Django UTC时间不转换

问题描述 投票:1回答:3

我无法将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 %}
django
3个回答
0
投票

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

USE_TZ = False

TIME_ZONE = 'US/Eastern'

0
投票

您需要为用户设置当前时区以获得转换时间。这样做的Django documentation provides an example middleware


-1
投票

试试这个:

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

请参阅documentation

© www.soinside.com 2019 - 2024. All rights reserved.