Не уверен, что мне здесь не хватает. Следующий код возвращает действительный NSDate, но с неправильным временем.iOS NSDateformatter issue - dateFromString, возвращающее то же (неверное) время независимо от строки ввода
На самом деле это не имеет значения, вернулось ли время даты dateString, поэтому я не думаю, что это проблема с часовым поясом, но проблема с форматированием.
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss+HH:mm"];
[inputFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
NSString *dateString = @"2013-07-26T19:45:00+01:00";
NSDate *theDate = [inputFormatter dateFromString:dateString];
// returns an NSDate of 2013-07-26 01:00 BST or 2013-07-26 00:00 in NSLog
Любое место, где я ошибаюсь? Спасибо, М.
Интересно, что разница в версии iOS в часовом поясе ... У вас есть ссылка на эту руку? –
Большое вам спасибо. Я пробовал с Z! Я так долго начинал в руководстве по разметке локалей, я просто не мог понять, где я ошибаюсь. Я очень ценю ваш ответ. – wuf810
Это на самом деле 'ZZZZZ', который является новым для iOS 6, а не' ZZZZ'. Тем не менее, NSDate кажется случайным образом просто «получить», что меня смущает. Согласно ссылочной странице, четыре-Z ('ZZZZ') должны быть одинаковыми между iOS 5 и 6. @CarlVeazey. Это страница, на которой отображается разбор грамматики против версии ios -> https://developer.apple.com/library/ ИОС/документация/какао/Концептуальные/DataFormatting/Статьи/dfDateFormatting10_4.html – borrrden