NSDateFormatter dateFromString devuelve nil

Aquí está mi código:

NSString *_date = @"Tue, 23 Nov 2010 16:14:14 +0000"; NSDateFormatter *parser = [[NSDateFormatter alloc] init]; [parser setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss '+0000'"]; [parser setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; NSDate *date = [parser dateFromString:_date]; 

Esto no se ejecuta: ‘date’ está establecido en ‘nil’. Lo intenté con

 [parser setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"]; 

Sin más éxito …

Tiene alguna idea ?

Gracias por adelantado

Agregue esta línea:

 NSDateFormatter *parser = [[NSDateFormatter alloc] init]; [parser setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 

y funcionará De forma predeterminada, NSDateFormatter usa la configuración regional actual del sistema, que puede variar según las preferencias del usuario actual. La cadena de fecha anterior ( @"Tue, 23 Nov 2010 16:14:14 +0000" ) contiene palabras en inglés (“Tue”, “Sep”) que el formateador de fecha podría no reconocer si la configuración regional se establecería en cualquier cosa que no sea inglés

Además, los usuarios de culturas no occidentales pueden usar configuraciones regionales que usan un calendario diferente al calendario gregoriano que se usa en el mundo occidental. Si no estableció explícitamente la configuración regional, el formateador de fecha podría analizar la fecha, pero el NSDate resultante representaría un punto entero en el tiempo.

El identificador de locale @"en_US_POSIX" está destinado para este fin. Se garantiza que no cambiará aunque la configuración regional @ “en_US” cambie algún día su configuración predeterminada.

El especificador de zona horaria es ‘z’, por lo que su cadena debe ser:

 [parser setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss z"];