Django中的时区

时间:2015-08-13 19:06:04

标签: python django datetime timezone

我用不同的事件开发网站。我想在用户当地时间显示事件开始时间。我不知道那是怎么回事。 我尝试使用这个django app django-easy-timezones。但它以UTC显示时间。 我的settings.py

TIME_ZONE = 'UTC'
USE_TZ = True

我的模板:

{% load tz %}
{% localtime on %}
      {{ start_time|date:"H:i" }}
{% endlocaltime %}

可以在不问时区的情况下做到这一点吗?

1 个答案:

答案 0 :(得分:1)

只有三种方法可以在不直接询问用户的情况下完成此操作; 1)使用客户端应用程序,2)依靠geo-ip或3)依赖浏览器专有的位置服务。

选项1 会在客户端需要一些内容来获取系统时区并通过请求返回它。在javascript中,您可以通过调用getTimezoneOffset() http://www.google.com来获取时区。

选项2 将依赖于maxmind的GeoIP数据库。他们在这个主题http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp

上有一个常见问题解答
  

GeoIP2 City数据库同样提供了时区   位置记录。要了解如何访问它,请参阅   您的语言的GeoIP2 API的文档。

选项3 需要利用每种浏览器的专有地理定位技术。以下是与Mozilla http://dev.maxmind.com/faq/how-can-i-determine-the-timezone-of-a-website-visitor

的关联方式的链接