Django 中的时区
Timezones in Django
我用不同的事件开发网站。我想以用户本地时间显示事件开始时间。我不知道该怎么做。
我尝试使用这个 django 应用 django-easy-timezones。但它以 UTC 显示时间。
我的 settings.py
TIME_ZONE = 'UTC'
USE_TZ = True
我的模板:
{% load tz %}
{% localtime on %}
{{ start_time|date:"H:i" }}
{% endlocaltime %}
是否可以在不询问时区的情况下做到这一点?
只有三种方法可以在不直接询问用户的情况下完成此操作; 1) 使用客户端应用程序,2) 依赖 geo-ip 或 3) 依赖浏览器专有定位服务。
选项 1 需要在客户端获取系统时区并 returns 请求。在 javascript 中,您可以调用 getTimezoneOffset()
http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp 获取时区。
选项 2 将依赖 maxmind 的 GeoIP 数据库。他们有关于这个主题的常见问题解答 http://dev.maxmind.com/faq/how-can-i-determine-the-timezone-of-a-website-visitor
The GeoIP2 City database similarly provides the time zone in the
location record. To find out how to access this, refer to the
documentation for your language’s GeoIP2 API.
选项 3 需要使用每个浏览器的专有地理定位技术。这是 link 如何使用 Mozilla https://www.mozilla.org/en-US/firefox/geolocation/
我用不同的事件开发网站。我想以用户本地时间显示事件开始时间。我不知道该怎么做。 我尝试使用这个 django 应用 django-easy-timezones。但它以 UTC 显示时间。 我的 settings.py
TIME_ZONE = 'UTC'
USE_TZ = True
我的模板:
{% load tz %}
{% localtime on %}
{{ start_time|date:"H:i" }}
{% endlocaltime %}
是否可以在不询问时区的情况下做到这一点?
只有三种方法可以在不直接询问用户的情况下完成此操作; 1) 使用客户端应用程序,2) 依赖 geo-ip 或 3) 依赖浏览器专有定位服务。
选项 1 需要在客户端获取系统时区并 returns 请求。在 javascript 中,您可以调用 getTimezoneOffset()
http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp 获取时区。
选项 2 将依赖 maxmind 的 GeoIP 数据库。他们有关于这个主题的常见问题解答 http://dev.maxmind.com/faq/how-can-i-determine-the-timezone-of-a-website-visitor
The GeoIP2 City database similarly provides the time zone in the location record. To find out how to access this, refer to the documentation for your language’s GeoIP2 API.
选项 3 需要使用每个浏览器的专有地理定位技术。这是 link 如何使用 Mozilla https://www.mozilla.org/en-US/firefox/geolocation/