Симулятор местоположения xcode 4.2 и часовой пояс - PullRequest
3 голосов
/ 22 января 2012

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

Однако, когда я пытаюсь получить дату с помощью NSDateFormatter, локальная дата все еще находится в PST. Я нахожусь в Тихоокеанском часовом поясе

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; // Jan 1, 2010
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];  // 1:43 PM

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:usLocale];
[usLocale release];

NSDate *testDate = [NSDate date];
NSLog(@"Local date: %@", [dateFormatter stringFromDate:testDate]);

Согласно документам, stringFromDate должен использовать текущую настройку приемников, которая должна использовать часовой пояс Токио, Япония.

Ожидается ли это?

1 Ответ

0 голосов
/ 22 января 2012

Проверьте - timezone -атрибут NSDateFormatter - я думаю, что это контролируется самим устройством (или вашим компьютером в данном случае), а не местоположением. В настройках приложения есть настройка, которая позволяет вам устанавливать время по местоположению, я не уверен, что это что-то изменит, но попробуйте активировать его.

И общие советы: всегда проверяйте его также на устройстве - я думаю, что настройка "Simulate Location" работает и на телефоне.

Изменить: Только что увидел ответ, который может быть актуальным, попробуйте позвонить [NSTimeZone resetTimeZone]; после установки нового местоположения. Это должно вызвать сброс и, надеюсь, отобразить правильный часовой пояс. Ссылка: https://stackoverflow.com/a/5987409/267892

...