Надежная библиотека часовых поясов или веб-сервис для Python - PullRequest
1 голос
/ 08 февраля 2012

Часть моего веб-приложения Django - это планировщик собраний, который чувствителен к часовому поясу.

В настоящее время он использует pytz, но имеет некоторые серьезные недостатки.

Например, часовой пояс для Москвыв настоящее время он отключен на 1 час из-за недавнего решения президента Медведева отменить переход на зимнее время в России (http://en.ria.ru/russia/20111030/168271560.html)

Другая серьезная проблема заключается в том, что список часовых поясов, который он предоставляет,очень долго и очень недружелюбно к пользователям, например, "Азия / Шангри-Ла".Большинство серьезных сайтов, которые предлагают некоторый комбинированный список выбора часового пояса, имеют гораздо более короткий список ...

Я ищу какое-нибудь надежное решение для обеспечения точного часового пояса и удобного выбора часового пояса для пользователей, либо какбиблиотека, которая обновляется всякий раз, когда в России происходят серьезные изменения, например, в России, или как надежный и бесплатный веб-сервис.

Ответы [ 2 ]

1 голос
/ 09 февраля 2012
  1. Вам потребуется получить версию pytz, которая содержит актуальную базу данных Олсона / Эггертта, учитывающую недавние изменения в политике часовых поясов для России. Тем не менее, по-видимому, в настоящее время ведется судебный процесс в отношении авторских прав, так что это может не произойти какое-то время. http://en.wikipedia.org/wiki/Tz_database#Maintenance Полагаю, вы могли бы получить источник pytz и внести патч самостоятельно. Но, насколько мне известно, все или почти все системы часовых поясов, которые работают хорошо, основаны на системе Олсона / Эггерт.

  2. Вы можете упростить работу пользователя, используя различные варианты поиска. pytz.common_timezones - это сокращенный список только идентификаторов часовых поясов, которые могут иметь наибольшее значение для пользователей. pytz.country_names - это словарь кода страны для названия страны (на английском языке) для отображения пользователю. pytz.country_timezones - это словарь кода страны со списком часовых поясов для этой страны. Используя их, пользователь может выбрать свою страну, а затем наиболее подходящий часовой пояс для этой страны, опционально показывая только варианты в списке common_timezones.

  3. Вероятно, самым простым интерфейсом для выбора часового пояса, который я видел, является карта мира, на которой вы щелкаете свое местоположение, и в ней определяется, какой часовой пояс Олсона / Эггертта вероятнее всего. В Ubuntu утверждается, что он основан на системе http://www.geonames.org/. Кроме того, я думаю, что pytz или, возможно, модуль times, с которым связан jcollado, примерно настолько же хорош, насколько это возможно. Политические часовые пояса сложны, поэтому любой код будет работать с ними.

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

0 голосов
/ 09 февраля 2012

Недавно я увидел в reddit объявление times , которое представляет собой библиотеку, предназначенную для удобной работы с объектами даты и времени и часовыми поясами.

Может быть, эта библиотека не принимает во внимание проблему, о которой вы упомянули в отношении московского часового пояса. Однако, поскольку библиотека активно развивается (последнее изменение было совершено менее одного дня назад), я бы сказал, что основной разработчик будет готов помочь, принять исправления и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...