Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Проблемы с разбором времени ISO8601 в iOS

Автор вопроса: phil swensonОтветов: 1

Я пытаюсь преобразовать эту строку "2011-11-23T17:59:00Z" в NSDate.

Я видел многих людей с этой проблемой, но у всех немного другой формат. Я не смог взломать решение.

Я пробовал такой код, как:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
dateFormat.timeStyle = NSDateFormatterFullStyle;
[dateFormat setDateFormat: @"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSString* date = ""2011-11-23T17:59:00Z"";
NSString *dateString = [dateFormat stringFromDate: date];

dateString всегда возвращается NULL

iosobjective-cnsdate

Ответы

Ответ 1 · рейтинг 3 · bryanmac

NSDateFormatter stringFromDate принимает объект NSDate, и вы передаете ему строку. http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

Попробуйте NSDateFormatter dateFromString.

Если вы используете dateFromString:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat: @"yyyy-MM-dd'T'HH:mm:ssZ"];
NSString* dateStr = @"2011-11-23T17:59:00Z";
NSDate *date = [dateFormat dateFromString:dateStr];

NSLog(@"date: %@", date);

Выходы:

2011-12-14 00:34:57.587 Craplet[440:707] date: 2011-11-23 22:59:00 +0000

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы