Why NSDateFormatter can not parse date from ISO 8601 format
18,080
The problem is with the timezone on the end.
You need to either have it as: GMT-0X:00 or as -0X00 with no separate between hours and minutes.
The following two combinations work:
Combo 1 - use GMT format (GMT-0X:00) and ZZZZ
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"];
NSLog(@"DATE FORMAT:%@", [dateFormatter dateFromString:@"2008-12-29T00:27:42GMT-08:00"]);
Combo 2 - use RFC 822 format (-0X00) and ZZZ
dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSLog(@"DATE FORMAT:%@", [dateFormatter dateFromString:@"2008-12-29T00:27:42-0800"]);
Related videos on Youtube
Author by
allenwei
I'm working at Groupon as a full-time RubyOnRails developer.
Updated on June 04, 2022Comments
-
allenwei almost 2 years
Possible Duplicate:
Converting an ISO 8601 timestamp into an NSDate: How does one deal with the UTC time offset?I use rails as backend, the default date output is 2008-12-29T00:27:42-08:00
But after my research NSDateFormatter can not support it, except I change date out to 2008-12-29T00:27:42-0800
Here is the code I used to parse ISO 8601 date, but it's not work
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; NSLog(@"%@", [dateFormatter dateFromString:@"2008-12-29T00:27:42-08:00"]);
Any ideas?