¿Por qué NSDateFormatter no puede analizar la date del formatting ISO 8601

Posible duplicado:
Convertir una timestamp ISO 8601 en un NSDate: ¿Cómo lidiar con el desplazamiento de hora UTC?

Uso los carriles como backend, la salida de date pnetworkingeterminada es 2008-12-29T00: 27: 42-08: 00

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

Aquí está el código que usé para analizar la date 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?

El problema es con la zona horaria del final.

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

Las siguientes dos combinaciones funcionan:

Combo 1: use el formatting 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 formatting 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"]);