使用地理位置为Django用户自定义时区

时间:2009-10-08 08:22:34

标签: python django timezone

我正在开发一个需要报告相对于用户的本地时间的Django应用。我不想让用户直接输入时区,因为我的地址存储在数据库中。我只考虑美国用户。由于美国大多数州只在一个时区,因此可以根据大多数情况下的州信息计算时区。我想给函数一个状态/地理信息的名称,并让它在考虑日光节省时间的情况下返回该状态的UTC的时间偏移。

是否有可以为python执行此操作的库?

3 个答案:

答案 0 :(得分:3)

我不确定这样的库是否存在。美国的每个州都没有一个时区。

看看这里:List of U.S. states by time zone

许多州有不止一个。

我猜你仍然可以使用该列表并选择该州大多数人使用的时区,然后允许用户在其不同时自定义他们的时区。

答案 1 :(得分:0)

我不确定它有多可靠,但HTTP请求 - 封装在request对象中的Django中 - 有一个TZ标题,显示客户端的时区。

>>> request.META['TZ']
'Europe/London'

答案 2 :(得分:0)

像安德烈·米勒所指出的那样,时区与国家无关。您可能最好使用邮政编码,因为有些城市会跨越时区线。

您可以购买一些数据库,这些数据库将邮政编码映射到时区。这是我发现的还包括UTC转换和夏令时:

USA 5-digit Zipcode DB with time zone info.

之前我还没有完成时区的事情,但是我已经将这种数据库用于lat / log信息。数据 会发生变化,因此请计划每年更新一次数据库。

顺便说一句,如果有人知道这样的免费数据库,请发帖:我认为这对社区来说真的很方便。