iphone objective-c ios nsdate nsdateformatter

iphone - Por qué NSDateFormatter no puede analizar la fecha del formato ISO 8601



objective-c ios (1)

El problema es con la zona horaria en el final.

Debe tenerlo como: GMT-0X: 00 o como -0X00 sin separar entre horas y minutos.

Las siguientes dos combinaciones funcionan:

Combo 1: use el formato GMT (GMT-0X: 00) y 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 el formato RFC 822 (-0X00) y 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"]);

Posible duplicado:
Convertir una marca de tiempo ISO 8601 en un NSDate: ¿Cómo se trata el desplazamiento de tiempo UTC?

Yo uso rieles como backend, la fecha de salida predeterminada es 2008-12-29T00: 27: 42-08: 00

Pero después de mi investigación, NSDateFormatter no puede admitirlo, excepto que cambio la fecha a 2008-12-29T00: 27: 42-0800

Aquí está el código que utilicé para analizar la fecha ISO 8601, pero no funciona

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"]);

¿Algunas ideas?