2014-11-21 4 views
3
>>> pytz.country_timezones['US'] 

America/New_York 
America/Detroit 
America/Kentucky/Louisville 
America/Kentucky/Monticello 
America/Indiana/Indianapolis 
America/Indiana/Vincennes 
America/Indiana/Winamac 
America/Indiana/Marengo 
America/Indiana/Petersburg 
America/Indiana/Vevay 
America/Chicago 
America/Indiana/Tell_City 
America/Indiana/Knox 
America/Menominee 
America/North_Dakota/Center 
America/North_Dakota/New_Salem 
America/North_Dakota/Beulah 
America/Denver 
America/Boise 
America/Phoenix 
America/Los_Angeles 
America/Metlakatla 
America/Anchorage 
America/Juneau 
America/Sitka 
America/Yakutat 
America/Nome 
America/Adak 
Pacific/Honolulu 

Из всего, что я могу найти в Интернете, нет абсолютно никакой разницы между часовыми поясами Нью-Йорка и Детройта, включая DST. И это было только от проверки первых двух. У них есть причина для обоих, верно?Почему у Pytz есть разные списки часовых поясов для Нью-Йорка и Детройта?

Редактирование: расширяя мое исследование, все временные регионы, перечисленные в UTC -5, имеют одинаковую точную информацию о DST, поэтому теперь кажется еще более избыточным. Я мог бы удалить все ниже с одним для Восточного стандартного времени ... Есть ли что-то не так с этим?

(UTC -5:00) New_York 
(UTC -5:00) Detroit 
(UTC -5:00) Kentucky/Louisville 
(UTC -5:00) Kentucky/Monticello 
(UTC -5:00) Indiana/Indianapolis 
(UTC -5:00) Indiana/Vincennes 
(UTC -5:00) Indiana/Winamac 
(UTC -5:00) Indiana/Marengo 
(UTC -5:00) Indiana/Petersburg 
(UTC -5:00) Indiana/Vevay 
+1

Это позволяет пользователю выбрать город, в котором они находятся ближе всего, не зная, в каком часовом поясе он находится. – kindall

ответ

7

Pytz использует базу данных часовых поясов IANA (также известную как база данных Olson). Как упоминает @brenbarn, часовые пояса в базе данных IANA отражают «любой национальный регион, где все местные часы все согласны с [1 января] 1970.», Который включает в себя не только время, но и изменения ДСТ.

Согласно database, «Большая часть Мичигана наблюдала DST с 1973 года, но была немного в конце 1975 года». Таким образом, это означает, что в 1970 году Мичиган был в EST, а на восточном побережье наблюдалось летнее время. Кроме того, DST не начинался в 1975 году в Мичигане до 27 апреля, через несколько недель после остальной части восточного часового пояса.

Если вы загружаете самые последние файлы, должны быть разные файлы (northamerica, southamerica, africa и т. Д.), Которые имеют удобные для пользователя описания того, что представляют собой различные часовые пояса, и объяснения любых изменений/причин, по которым они не находятся в другом часовом поясе.


Чтобы построить на вашем редактировать, Индиан представляет special case в пределах США, из-за свое историческое присутствие на границе между двумя часовыми поясами. По состоянию на ноябрь 2014 года Индиана в основном находится в Восточном часовом поясе (за исключением нескольких округов вблизи Чикаго и недалеко от Эвансвиля, которые находятся в центральное время), и все государство наблюдает за летним временем. Но центральная/восточная граница несколько раз переместилась с 1970 года. На самом деле, я уверен, что большинство этих часовых поясов произошло, когда в 2006 году ряд стран переместили зоны в и снова в 2007 году, приняв переход на летнее время в процессе ,

3

pytz использует zoneinfo определения часового пояса, которые, по-видимому определить часовой пояс, как «любой национальной области, где местные часы все согласованному с 1970 года» Я бы заподозрил, что исторические изменения в часовом поясе или поведение летнего времени привели к тому, что в настоящее время они имеют одинаковое время, но не всегда. (Например, я думаю, что Бойсе и Денвер тоже сейчас равны, но у них также есть разные записи.)