2012-08-26 11 views
9

En mi aplicación utilizo la API de gráficos de Facebook y cuando obtengo los datos del usuario obtengo el cumpleaños del usuario como una cadena con el formato MM/DD/YYYY.Conversión de cadenas MM/DD/AAAA a NSDate

Mi pregunta es, ¿cómo puedo convertir la secuencia "MM/DD/YYYY" al NSDate?

que trate de hacer

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MM/DD/YYYY"]; 
NSDate *date = [dateFormatter dateFromString:@"08/08/2012"]; 
[dateFormatter release]; 

pero me dio la fecha equivocada

Respuesta

14

Usando NSDateFormatter puede convertir directamente de NSString a NSDate. He aquí un ejemplo:

NSDateFormatter* myFormatter = [[NSDateFormatter alloc] init]; 
[myFormatter setDateFormat:@"MM/dd/yyyy"]; 
NSDate* myDate = [myFormatter dateFromString:@"8/26/2012"]; 
NSLog(@"%@", myDate); 

Ver Unicode.org para obtener información sobre los patrones de formato fecha.

1

Para estos casos exactamente NSDateFormatterexist.

+0

Esto no es realmente una respuesta, ya que la pregunta original que se hace referencia NSDateFormatter. –

+3

No fue cuando di esta respuesta. Fue editado después. – Matthias

+0

@Matthias Leí la pregunta antes de editar ... jajaja qué giro a la pregunta: D su respuesta es perfectamente correcta según esa pregunta, así que +1 de mi parte para usted. –

3

Lo está haciendo todo bien. Tu problema es solo la cadena de formato.

  • Capital M es mensual.
  • Pequeño d es de día.
  • Pequeño y es año.

Simplemente use estos símbolos consistentemente y debería estar bien.

5

Añadir [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]

+0

¡Gracias, me salvaste un poco de tiempo! – StuartM

+0

Gracias, hombre, exactamente lo que me faltaba :) – sachadso