Где дата и время iPhone получают список часовых поясов - PullRequest
4 голосов
/ 07 июня 2010

Я могу получить список часовых поясов с помощью [NSTimeZone knownTimeZoneNames], но это дает только идентификаторы часовых поясов, которые включают один или два города в каждом часовом поясе.

Настройки даты и времени содержат большой список городов, и я видел несколько других приложений, которые имеют такие же, если не похожи, списки поиска.

Откуда эти списки?

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

Ответы [ 3 ]

7 голосов
/ 07 июня 2010

только 2? На 3.1 [NSTimeZone knownTimeZoneNames] возвращает массив из 401 элемента, и на Земле гораздо меньше 200 часовых поясов.

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


Settings.app использует private CPCity API из private AppSupport.framework. У него есть Сан-Франциско, но он частный.

Вам необходимо создать собственную базу данных (данные можно скопировать из /System/Library/PrivateFrameworks/AppSupport.framework/all_cities_adj.plist).

2 голосов
/ 07 июня 2010

То, что вы просите, обычно называют базой данных Олсона. См. Например эту страницу Википедии . Публичный домен Zone.tab Файл содержит все часовые пояса. Вы можете найти файл zone.tab в каталоге zoneinfo дистрибутива libical .

1 голос
/ 20 июля 2017

Я знаю, что это может быть поздний ответ, но на тот случай, если кто-то другой наткнется на него, как я сделал на днях.Я только что открыл библиотеку, которая делает именно это.Он доступен как CocoaPod, и вы можете найти его здесь:

https://github.com/gligorkot/TimeZonePicker

Кроме того, спасибо за все ответы выше, они помогли мне найти правильную базу данных городов, которая используется дляприложение Настройки.

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