2

J'essaye d'analyser une chaîne qui a été générée par un NSDateFormatter utilisant un autre NSDateFormatter avec le même format.Pourquoi ne puis-je pas correctement analyser cette chaîne de date avec NSDateFormatter?

Plutôt que d'essayer de faire ce logique précédente phrase, voici un code:

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); 

Quand je lance ce code, je pense que parsé contiendrait la même date que maintenant mais je obtenir le résultat suivant:

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

quelqu'un a des idées pourquoi cela se passe?

Répondre

9

Votre problème est que "YYYY" n'est pas une option de formatage de date ICU valide. Vous voulez "yyyy".

Le capital 'Y' n'est valide que s'il est utilisé avec l'option "semaine de l'année" (c'est-à-dire "'Semaine' w 'de' Y ').

+0

Bingo! Cela l'a réparé. –

Questions connexes