我試圖將UTC時間在我的模板的localtime出於某種原因,這樣做的:的Django的localtime
{% load tz %}
{% localtime on %}
{{ value }}
{% endlocaltime %}
仍然給我UTC
然而
{{ value|localtime }}
值使用我當地的時區設置給我的值
將settings.py中的USE_TZ設置爲True也似乎什麼都不做
任何想法我做錯了什麼?
我試圖將UTC時間在我的模板的localtime出於某種原因,這樣做的:的Django的localtime
{% load tz %}
{% localtime on %}
{{ value }}
{% endlocaltime %}
仍然給我UTC
然而
{{ value|localtime }}
值使用我當地的時區設置給我的值
將settings.py中的USE_TZ設置爲True也似乎什麼都不做
任何想法我做錯了什麼?
您試圖顯示的{{ value }}
日期/時間對象是一個天真的日期時間對象。天真的日期時間對象不會在模板標籤中轉換 - 您的第一個例子,但會在模板過濾器中轉換 - 您的第二個例子。
「天真」 與DateTime對象是如何創建的事情。有關如何更改日期/時間對象時知道的信息 - 允許它在模板標籤中使用 - 退房This Thread
我創建了一個簡單的中間件來處理所有的這些東西對你:
https://github.com/Miserlou/django-easy-timezones
只需安裝它並按照說明操作即可完成!
安裝Django-易時區
pip install django-easy-timezones pytz pygeoip
添加 「易時區」 到你的INSTALLED_APPS設置是這樣的:
INSTALLED_APPS = ( ... 'easy-timezones', )
添加EasyTimezoneMiddleware到您的MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = ( ... 'easy-timezones.middleware.EasyTimezoneMiddleware', )
添加到MaxMind GeoIP database的路徑在你的設置文件:
GEOIP_DATABASE = '/path/to/your/geoip/database/GeoIP.dat'
啓用你的模板本地時間。
{% load tz %} The UTC time is {{ object.date }} {% localtime on %} The local time is {{ object.date }} {% endlocaltime %}
田田!