Tengo un pequeño problema con el fallo de NSDateFormatter en el dispositivo de un usuario (devuelve nulo al analizar una cadena) y funciona perfectamente cuando lo ejecuto localmente (ya sea en el simulador o en mi dispositivo).Comportamiento incoherente con NSDateFormatter en dos dispositivos diferentes
Estoy tratando de descartar lo que podría estar causando una diferencia en este comportamiento. Lo primero que pensé fue en la configuración regional, pero intenté configurarla de forma explícita para garantizar que siempre se usa la misma configuración regional, pero no hace ninguna diferencia.
Aquí está el código:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
[locale release];
NSDate *theDate = [dateFormatter dateFromString:dateString];
NSLog(@"PARSING DATE %@ AS %@", dateString, theDate);
En el dispositivo en su defecto, me sale:
PARSING DATE 2010-11-28T20:30:49-0000 AS (null)
Pero localmente consigo:
PARSING DATE 2010-11-28T20:30:49-0000 AS 2010-11-28 20:30:49 +0000
Esto me está volviendo loco, soy Me falta algo más?
Estoy ejecutando 4.2 localmente (simulador) y en mi dispositivo (un iPhone 4). El dispositivo que falla es un 3GS que ejecuta 4.2.1.
¡Cualquier idea sería muy apreciada!
Dado que configuró explícitamente la cadena de formato, ¿intentó eliminar el código de configuración regional? – Costique
¿El dispositivo tiene activada la configuración "Hora de 24 horas"? Consulte [Apple QA1480] (http://developer.apple.com/library/ios/#qa/qa2010/qa1480.html) para obtener más información. – Anna
Sí, lo he intentado sin configurar el entorno local como se indica anteriormente. –