Установите конкретный часовой пояс для использования в приложении - PullRequest
4 голосов
/ 21 февраля 2012

Я пишу приложение, которое должно отображать и вычислять все даты, время, временные интервалы и т. Д. Из определенного, данного часового пояса в Европе. Это означает, что если я, скажем, в Париже, приложение теперь работает без нареканий, но если я еду в Нью-Йорк, приложение должно отображаться и работать точно так же, как если бы я был в Париже.

Наивно я пробовал (в функции application: didFinishLaunchingWithOptions:)

[[NSCalendar currentCalendar] setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Paris"]];

но, конечно, это не работает, все мои объекты NSDateFormatter по-прежнему используют текущий часовой пояс, если явно не указано иное.

Итак, я бы хотел знать:

  • Есть ли способ принудительно применить часовой пояс в приложении? Я бы предпочел не просматривать весь мой код и исправлять каждый форматировщик даты и средство выбора даты и т. Д., Если есть другой способ.

  • Будет ли [NSTimeZone timeZoneWithName:@"Europe/Paris"] правильно переключаться между CET и CEST?

Спасибо, вперед!

1 Ответ

12 голосов
/ 21 февраля 2012

Можно использовать метод + (void)setDefaultTimeZone:(NSTimeZone *)aTimeZone класса NSTimeZone.

...