2015-10-04 6 views
4

У меня проблема с форматированием даты в iOS 9, она работает нормально с iOS 8, а также работает, когда я тестирую ее в симуляторе с iOS 9, но когда тест на реальном устройстве с iOS 9 я получаю null. Ниже код, который я используюФорматирование даты в iOS 9 не работает

NSLog(@"String Date: '%@'", stringDate); 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 
NSDate *date = [dateFormat dateFromString:stringDate]; 
NSLog(@"Date: %@", date); 

В журнале я получаю:

String Date: '8/29/2015 4:13:39 PM' 
Date: (null) 

Кроме того, если я использую заглавную ч (Н или НН) Я всегда получаю тот час на 10.

ответ

5

Попробуйте установить языковой стандарт на свой формат даты.

[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 

От Apple Documentation:

Если вы работаете с датами фиксированного формата, вы должны сначала установить локализаций даты форматировщиком к чему-то соответствующее для вашего фиксированного формата . В большинстве случаев лучшим выбором для локали является en_US_POSIX, локальный язык , который специально разработан для получения результатов на английском языке в США независимо от пользовательских и системных настроек.

EDIT: Swift Версия

dateFormat.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
+0

Как это будет работать на стрижа? –

+0

См. Мой обновленный пост. @YestayMuratov – Abhinav

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