У меня очень быстрая реализация C синтаксического анализа строк NSString ISO8601 в NSDates в SAMCategories . Вы можете установить его с CocoaPods или просто скопировать файлы в ваш проект.
Вот как это использовать:
[NSDate sam_dateFromISO8601String:@"2013-08-24T06:51:21-07:00"]
Это очень надежно и поддерживает пропущенные часовые пояса и т. Д. Как и В моем комментарии выше сказано, что NSDateFormatter был очень медленным для меня при анализе большого количества дат. Переход на эту реализацию помог огромному количеству.
Этот код используется в 6 производственных приложениях (включая Hipstamatic и Roon ), над которыми я работал без известных проблем. Существует набор тестов для предотвращения регрессии.
Короче говоря, я думаю, что это лучший способ анализа строк ISO8601 в Objective-C.
Если коротко, если вы беспокоитесь о производительности и передаче, отправка целых чисел вместо строк ISO8601 очень предпочтительна. Вы можете просто конвертировать их в даты с [NSDate dateWithTimeIntervalSince1970:yourInteger]
. Быстродействие настолько быстрое, насколько вы можете его достичь, и по проводам передается меньше символов.