Настройка часовых поясов для пользователей Django с использованием географии - PullRequest
2 голосов
/ 08 октября 2009

Я работаю над приложением Django, которое должно сообщать о местном времени относительно пользователя. Я бы предпочел не просить пользователя вводить часовой пояс напрямую, потому что его адрес хранится в базе данных. Я рассматриваю только американских пользователей. Поскольку большинство штатов в США находятся только в одном часовом поясе, можно рассчитать часовой пояс на основе информации о состоянии для большинства случаев. Я хочу дать функции название состояния / географической информации и вернуть ее смещение времени от UTC этого состояния с учетом летнего времени.

Есть ли библиотека, которая может сделать это для Python?

Ответы [ 3 ]

3 голосов
/ 08 октября 2009

Я не уверен, что такая библиотека существует. В каждом штате США нет только одного часового пояса.

Посмотрите здесь: Список штатов США по часовому поясу

Во многих штатах их более одного.

Полагаю, вы все еще можете использовать этот список и выбрать часовой пояс, который используется большинством штатов, а затем позволить пользователям настраивать свой часовой пояс, если он отличается.

0 голосов
/ 08 октября 2009

Как отметил Андре Миллер, часовые пояса не привязаны к состоянию. Вы, вероятно, лучше использовать почтовый индекс, потому что несколько городов пересекают линии часового пояса.

Есть несколько баз данных, которые вы можете приобрести, которые сопоставляют почтовые индексы с часовыми поясами. Вот один из найденных мной, который также включает смену UTC и переход на летнее время:

США 5-значный БД Zipcode с информацией о часовом поясе.

Раньше я ничего не делал с часовым поясом, но я использовал такую ​​базу данных для широковещательной / логарифмической информации. Данные меняются , поэтому планируйте обновлять базу данных несколько раз в год.

Кстати, если кто-нибудь знает о такой бесплатной базе данных, пожалуйста, напишите: я думаю, это было бы очень удобно для сообщества.

0 голосов
/ 08 октября 2009

Я не уверен, насколько он надежен, но HTTP-запрос - инкапсулированный в Django в объекте request - имеет заголовок TZ, который показывает часовой пояс клиента.

>>> request.META['TZ']
'Europe/London'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...