2011-11-04 3 views
0

Je souhaite analyser une date à partir d'une chaîne donnée. Le format de la chaîne est toujours comme ceci: "YYMMDD" par ex. 110831 qui serait l'année 2011, le mois d'août et jour 31. Donc, à des fins de test, j'ai écrit ce petit morceau de code:IOS: analyse d'une date à partir d'une chaîne

NSString* strDate = [NSString stringWithFormat:@"110803"]; 
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"YYMMDD"]; 
NSDate* date = [dateFormatter dateFromString:strDate]; 
NSLog(@"date = %@", date); 

Le problème: La sortie de NSLog est toujours 2011-01-02 23:00 : 00 +0000 ou 2011-01-29 23:00:00 +0000 pour "110829" la même sortie est délivrée pour "110630". Donc je sais que le premier jour commence par un zéro mais le mois n'est pas reconnu correctement. Par conséquent, je me demande ce que je fais mal ici?

Répondre

1
+0

Ce qui pourrait également vous surprendre est TimeZone -super. Si vous produisez la date: @ "110804", et vous êtes au Royaume-Uni (comme je suis) - c'était l'heure d'été britannique (GMT +1), mais il honore mon fuseau horaire actuel de GMT - de sorte que la sortie serait effectivement un NSDate de 11 08 03 à 23:00 heures ... !! peut être déroutant. Je recommande de regarder la vidéo WWDC 2011 "Performing Calendar Calculations" – bandejapaisa

Questions connexes