NSDateFormatter dateFromString da la date incorrecta

Ya he probado las sugerencias en otras publicaciones similares a esta sin ningún resultado. Esta es la situación:

Tengo un NSString así:

Fri November 18, 2011 

y estoy tratando de convertir eso a una date como esta:

  NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"EE MMMM d, YYYY"]; NSDate *myDate = [df dateFromString: dateString]; 

Pero la variable myDate resultante sostiene esto:

 2010-12-31 00:00:00 +0000 

¿Alguien tiene alguna idea de por qué se escoge la date equivocada de dateFromString? La secuencia es el 18 de noviembre, la date convertida es el 31 de diciembre …

¡Gracias a todos!

Necesitas usar yyyy durante el año, no YYYY .

De la reference de Apple :

Un error común es usar YYYY. yyyy especifica el año calendar, mientras que YYYY especifica el año (de "Semana del año"), que se usa en el calendar ISO año-semana. En la mayoría de los casos, aaaa y AAAA producen el mismo número, sin embargo, pueden ser diferentes. Por lo general, debe usar el año calendar.

Y para estar correcto, también debes cambiar EE a EEE . Aunque arrojan el mismo resultado en mi testing.

Creo que necesitas "EEE MMMM d, YYYY", es decir, triple E como cadena de formatting. Si esto no funciona, recomiendo usar cadenas codificadas con dates y formattings más fáciles para descomponer el problema. Consulte, por ejemplo, NSDateFormatter no funciona para más sugerencias sobre ese tema.