2015-04-29 3 views
2

Я использовал этотКак перевести часовой пояс в код страны в Python?

from pytz import country_timezones 

Но он не включает в себя ниже часовых поясов

Африка/Asmera, Африка/Тимбукту, Америка/Аргентина/ComodRivadavia, Америка/Атка, Америка/Buenos_Aires, Америка/Катамара, Америка/Корал-Гарбор, Америка/Кордова, Америка/Энсенада, Америка/Форт-Вайне, Америка/Индианаполис, Америка/Жужуй, Америка/Нокс_Ин, Америка/Луисвилл, Америка/Мендоса, Америка/Монреаль, Америка/Порто_Акре, Америка/Росарио, Америка/Широк, Америка/Дева, Антарктика/Южная_Поле, Азия/Ашхабад, Азия/Калькутта, Азия/Чунцин, Азия/Чунцин, Азия/Дакка, Азия/Харбин, Азия/Стамбул, Азия/Кашгар, Азия/Катманду, Азия/Макао, Азия/Сайгон, Азия/Тель-Авив, Азия/Тхимбу, Азия/Ujung_Pandang, Азия/Улан-Батор, Атлантик/Фарер, Атлантик/Ян_Майен, Австралия/ACT, Австралия/Канберра, Австралия/LHI, Австралия/NSW, Австралия/Север, Австралия/Квинсленд, Австралия/Юг, Австралия/Тасмания, Австралия/Виктория, Австралия/Запад, Австралия/Яньковинна, Бразилия/Акко, Бразилия/ДеНоронья, Бразилия/Восток, Бразилия/Запад, Канада, Канада/Южная Каролина, Канада/Ньюфаундленд, Канада/Тихоокеанский регион, Канада/Саскачеван, Канада/Юкон, Чили/Континенталь, Чили/Пасхальная неделя, Куба, EET, EST, EST5EDT, Египет, Эйр, Европа/Белфаст, Европа/Никосия, Европа/Тирасполь, GB, GB-Eire, Гринвич, HST, Гонконг, Исландия, Иран, Израиль, Ямайка, Япония, Кваджалейн, МЕТ, MST, MST7MDT, Мексика/BajaNorte, Мексика/BajaSur, Мексика/General, NZ, NZ-CHAT, Навахо, КНР, PST8PDT, Тихоокеанский регион/Тихоокеанский регион/Тихоокеанский регион/Тихоокеанский регион/ROC, RO K, Сингапур, Турция, UCT, США/Аляска, США/Алеут, США/Аризона, США/Центральная, США/Восточная Индиана, США/Восточная, США/Гавайи, США/Индиана-Старк, США/Мичиган, США/Горы, США/Тихоокеанский регион, США/Самоа, UTC, Универсальный, W-SU, WET, Zulu

Как я могу преобразовать эти часовые пояса в код страны?

+1

Многие страны могут иметь один и тот же часовой пояс, я не думаю, что вы можете преобразовать часовой пояс в код страны точно так же, как – Morb

+0

Я знаю, я просто хочу понять, что, за исключением часового пояса многозонной области. например, «Азия/Макао» –

+0

@Morb Кроме того, если вы находитесь в России или в США, например, может быть правдой: много часовых поясов в одной стране – namezero

ответ

2

Вы не можете делать то, что хотите. Или, вы можете, но вы получите результаты, которые вы получаете, а не результаты, которые вы хотите. Вкратце, если вы попросите «страну, использующую Зулу», и ни одна страна не использует Зулу, вы не сможете ничего найти. Более подробно ...


Как документы на Country Information говорит:

Предусмотрен механизм доступа к часовым поясам обычно используются для конкретной страны, ищусь используя код ISO 3166.


Однако, «устаревшая» зона, как America/Buenos_Aires и «исторические» зоны, такие как US/Pacific не используется в какой-либо конкретной стране. Многие из них делать случаются псевдонимы часовых поясов, которые являются используется в некоторых странах, как America/Argentina/Buenos_Aires и America/Los_Angeles, соответственно, но это не делает вам никакой пользы, потому что pytz не раскрывает эту информацию. Вы можете подать запрос на повышение по сравнению с pytz, чтобы добавить это в будущую версию, если считаете, что это важно.


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

{country for country, timezones in country_timezones.items() 
if timezone in timezones} 

Если вам нужно сделать много этих поисков, вы можете конечно построить свой собственный Dict, чтобы сделать это быстрее и проще:

timezone_countries = {} 
for country, timezones in country_timezones.items(): 
    for timezone in timezones: 
     timezone_countries.setdefault(timezone, set()).add(country) 

а теперь это просто:

timezone_countries[timezone] 

Но в любом случае, вы можете получить пустой набор или набор из 3-х стран, вместо 1. Если база данных на самом деле говорит, что есть 0 или 3 страны, которые используют, что часовой пояс, вот что вы получите.

 Смежные вопросы

  • Нет связанных вопросов^_^