Analizar la fecha JSON en NSDate dependiendo de la configuración del usuario

Tengo un problema para convertir una fecha de cadena JSON brut:

"created_at" = "2012-12-22T21: 39: 22Z";

en un NSDate.

Aquí está mi categoría actual para eso:

- (NSDate*)dateWithJSONString
{
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[dateFormatter setCalendar:[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:self];
return date;        
}

El problema es que esto funciona en el 95% de mis casos, pero si algunos usuarios usan AM / PM en lugar de 24H en la configuración de fecha y hora combinada con la configuración internacional personalizada, la fecha no se crea a partir de la cadena json.

Leo estodiscusión pero no puedo encontrar la mejor manera de trabajar con todos mis usuarios y configuraciones internacionales.

Agregué esto por ejemplo:

[dateFormatter setLocale:[NSLocale currentLocale]];

pero no cambió nada. El NSDate no se crea si configuro mi iPhone con AM / PM en lugar de 24H.

AM / PM NSDate schema: 2013-01-21 07:12:43 AM +0000

24H NSDate schema: 2013-01-21 07:12:43 +0000

Qué me perdí ? ¿Hay algo para actualizar en el formato de fecha?

Respuestas a la pregunta(3)

Su respuesta a la pregunta