2013-09-20 7 views
0

Я пытаюсь преобразовать NSDate в локальное времяZone. Я делаю вот такПреобразование локального часового пояса для NSDate

dateTimeFormatter = [[NSDateFormatter alloc] init]; 
[dateTimeFormatter setTimeZone:[NSTimeZone localTimeZone]]; 
[dateTimeFormatter setDateFormat:@"MMM d', 'yyyy', 'h':'mm a zzz"]; 

дата выглядит следующим образом 2013-10-05 11:00:00 +0000. Я получаю его как 04:30 вечера, который должен быть 04:30. В любом случае, чтобы это работало?

NSString *str = [dateTimeFormatter stringFromDate:myDate]; 
+1

Дата форматтеры по умолчанию с использованием локального часового пояса. Не нужно его устанавливать. И не устанавливайте стиль и формат. Сделайте то или другое. – rmaddy

+0

Покажите, как вы определяете выход. – rmaddy

+0

Я обновил свое сообщение. –

ответ

0

Попробуйте это ..

[dateTimeFormatter setDateFormat:@"MMM dd', 'yyyy', 'hh':'mm a zzz"]; 
+0

Это не поможет. Единственное различие заключается в том, как в конечной строке появятся отдельные цифры дней и часов. – rmaddy

+0

Да это не имеет значения –

0

Дайте выстрел этот ответ от Apple, он должен просветить тему: About Date formatters
Мэдди сказал, что вы не должны установить часовой пояс, один по умолчанию выбирается из общих настроек в iOS, чтобы сделать правильное преобразование.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];  
formatter.dateFormat = @"MMM d', 'yyyy', 'h':'mm a zzz"; 
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
+0

Нет, это не помогает –

Смежные вопросы