Pregunta

Estoy intentando analizar una cadena generada por un NSDateFormatter usando otro NSDateFormatter con el mismo formato.

En lugar de intentar que la oración anterior tenga sentido, aquí hay un código:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *now = [[NSDate alloc] init];

NSString *dateString = [format stringFromDate:now];

NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *parsed = [inFormat dateFromString:dateString];

NSLog(@"\n"
      "now:        |%@| \n"
      "dateString: |%@| \n"
      "parsed:     |%@|", now, dateString, parsed);

Cuando ejecuto este código, espero que analizado contenga la misma fecha que ahora , pero en cambio obtengo el siguiente resultado:

now:        |2009-05-04 18:23:35 -0400| 
dateString: |May 04, 2009 18:23| 
parsed:     |2008-12-21 18:23:00 -0500|

¿Alguien tiene alguna idea de por qué sucede esto?

¿Fue útil?

Solución

Su problema es que " YYYY " no es una opción de formato de fecha ICU válida. Quieres " yyyy " ;.

El capital 'Y' solo es válido cuando se usa con la " semana del año " opción (es decir, " "Semana 'w' de 'Y ").

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top