Возвращаются разные имена NSTimeZone - PullRequest
1 голос
/ 31 января 2010

Я заметил, что на некоторых устройствах метод NSTimeZone name для определенного часового пояса может возвращать разные значения. При тестировании часового пояса Брисбена мое устройство возвращает @"Australia/Brisbane", тогда как устройство другого пользователя возвращает "Etc/GMT-10". Оба iPhone работают под управлением 3.1.2.

Руководство по программированию даты и времени для какао гласит:

timeZoneWithName : имя, переданное этому методу, может быть в любом из форматы, понятные системой, для пример EST, Etc / GMT-2, Америка / Аргентина / Buenos_Aires, Европа / Монако или США / Тихий океан, как показано в следующем фрагменте кода.

Я просто хотел бы знать, что может определить, какое значение используется? Устройство? Язык?

Ответы [ 2 ]

1 голос
/ 22 мая 2010

Я обнаружил, в чем причина.

При ручной установке часового пояса из встроенного списка Apple возвращается правильное и точное имя часового пояса. Однако некоторые операторы мобильной связи предоставляют информацию о смещении текущего часового пояса по воздуху, и в этом случае Apple предоставляет параметр «Автоматически», который позволяет iPhone автоматически менять часовой пояс при переходе в другой часовой пояс.

Проблема в том, что хотя текущее смещение по Гринвичу указано, невозможно определить, на какой широте находится пользователь. Очевидно, что в Австралии может быть несколько городов с часовым поясом GMT -10. Таким образом, конкретное название часового пояса недоступно, только телефон в настоящее время GMT -10.

0 голосов
/ 31 января 2010

Я никогда не снимаю сцену того, что вы описываете. По моему опыту, он возвращает имя, с которым вы его создали.

В любом случае, если вы используете имя для отображения пользовательского интерфейса, вы должны позвонить [NSTimeZone localizedName:locale:], чтобы принудительно выбрать нужный стиль имени.

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