我无法将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 %}
你需要从settings.py
设置时区。
USE_TZ = False
TIME_ZONE = 'US/Eastern'
您需要为用户设置当前时区以获得转换时间。这样做的Django documentation provides an example middleware。