Проблемы с разбором времени ISO8601 в iOS - PullRequest
2 голосов
/ 14 декабря 2011

Я пытаюсь преобразовать эту строку "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

1 Ответ

3 голосов
/ 14 декабря 2011

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
...