Получение города и страны из NSTimeZone

Я хотел бы (по крайней мере) получить название страны для часового пояса. Это не обеспечивается ни одним из возможных методов:

  • название,
  • localizedName:locale:,
  • описание

Я заметил, что встроенное приложение часов iPhone имеет доступ к этой информации, поскольку оно описывает Лондон как «Лондон, Англия».

Спасибо.


person Benjohn Barnes    schedule 02.12.2009    source источник
comment
Пожалуйста, сообщите нам, как вы это сделали, если вы это понимаете. Мне тоже интересно, как это сделать.   -  person Ben S    schedule 04.12.2009
comment
Хе, Бен, дальше я не продвинулся. Тем не менее, есть некоторые городские базы данных, которые могут быть полезны для выполнения такого рода поиска. Взгляните на: answers.google.com/answers/threadview?id=714539, geobytes.com/GeoWorldMap.zip и geolite.maxmind.com/download/worldcities, чтобы начать работу.   -  person Benjohn Barnes    schedule 12.01.2010
comment
Вы с этим чего-нибудь добились? Я застрял на том же самом.   -  person Simon Cave    schedule 29.03.2011
comment
Системные настройки › Дата и время › Часовой пояс в OS X показывает аналогичную информацию, а карта указывает на Geonames.org. Возможно, стоит покопаться в том, что делает OS X?   -  person Ashley    schedule 08.07.2014


Ответы (2)


Уверен, что со встроенными часами работает иначе. Существует база данных городов, в каждом из которых указана страна и часовой пояс. А что вы ожидаете от [myGMT city]? Дублин или Касабланка?

person Kai Huppmann    schedule 02.12.2009
comment
Вы знаете, что эта база данных подвергается риску, или вы считаете, что это пользовательский код в приложении часов? Экземпляр NSTimeZone не просто представляет смещение по Гринвичу (как я думаю, вы подразумеваете в своем последнем предложении, но я не уверен), они представляют (как указано в документации) геополитические регионы, и, насколько я могу видеть, всегда связаны с конкретным городом. Вполне разумно показывать страну, в которой находится этот город, как это делает приложение часов. Спасибо. - person Benjohn Barnes; 03.12.2009

Из описания timeZoneWithName:data: файловая система имеет информацию о часовом поясе, расположенную по адресу /usr/share/zoneinfo.

Я понятия не имею, каков формат файлов, и можете ли вы вообще прочитать их из песочницы приложения, но, вероятно, именно так приложение Clock получает информацию.

person Ben S    schedule 03.12.2009
comment
Спасибо. Информация по этому пути относится к базе данных TZ или базе данных Zoneinfo. Это стандартный файл с открытыми данными для представления информации о часовых поясах, используемый многими архитектурами — много информации в википедии: en. wikipedia.org/wiki/Zoneinfo. Однако файл zoneinfo не предоставляет страну, в которой находится город, поэтому я не думаю, что часы будут использовать это. - person Benjohn Barnes; 04.12.2009