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?