Python Django的时区

Python Django的时区,python,django,datetime,timezone,Python,Django,Datetime,Timezone,我用不同的事件开发网站。我想用用户本地时间显示事件开始时间。我不知道该怎么做。 我尝试使用这个django应用程序。但它以UTC表示时间。 我的设置.py TIME_ZONE = 'UTC' USE_TZ = True 我的模板: {% load tz %} {% localtime on %} {{ start_time|date:"H:i" }} {% endlocaltime %} 不需要询问时区就可以做到这一点?只有三种方法可以做到这一点,而不需要直接询问用户;1) 使用

我用不同的事件开发网站。我想用用户本地时间显示事件开始时间。我不知道该怎么做。 我尝试使用这个django应用程序。但它以UTC表示时间。 我的设置.py

TIME_ZONE = 'UTC'
USE_TZ = True
我的模板:

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

不需要询问时区就可以做到这一点?

只有三种方法可以做到这一点,而不需要直接询问用户;1) 使用客户端应用程序,2)依赖地理ip或3)依赖浏览器专有位置服务

选项1需要客户端上的某些东西来获取系统时区并返回请求。在javascript中,您可以通过调用
getTimezoneOffset()
获取时区

选项2将依赖maxmind的GeoIP数据库。他们有一个关于这个主题的常见问题解答

GeoIP2城市数据库同样提供了城市中的时区 位置记录。要了解如何访问此文件,请参阅 您的语言的geoip2api的文档


选项3要求利用每个浏览器专有的地理定位技术。这里有一个链接指向如何使用Mozilla实现这一点

还有另一个选项用户远程API。您可以通过传入IP地址来获取时区。