2011-11-15 3 views
0

J'ai été confronté à un problème étrange lors de la conversion de la valeur NSString de la date en instance NSDate. On dirait que Great Harry Potter a visité mon code.NSDate et NSDateFormatter magic

Je reçois la chaîne de date du serveur au 24 e format de date: "2011-11-15 11:44". Mon iPhone a le format de date 12 dans les paramètres. Quand j'essaye de convertir cette chaîne en NSDate je peux voir que la valeur de date est égale à NIL. Si je passe les paramètres au format de date 24, cela fonctionne très bien. Ceci est mon code:

NSString * sDate = @"2011-11-15 11:44"; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyy-MM-dd HH:mm"]; 
[df setTimeZone:[NSTimeZone localTimeZone]]; 
NSDate * pDate = [df dateFromString:sDate]; 

En résultat, pDate est NIL. Mais, si je cours ce code sur iPod Touch, je peux voir la valeur de la date erronée au format 12-ème au lieu de cela. Je ne peux pas comprendre un problème. Pourrais-tu m'aider s'il te plait?

Merci.

+0

Qu'est-ce qui se passe si vous commentez la ligne [df settimezone: [NSTimeZone LocalTimeZone]]; ? –

+0

At-il résolu votre problème? –

+0

J'ai acheté un équipement magique spécial et créé une date en utilisant NSCalendar et NSDateComponents. :) C'est un mauvais tour mais ça marche. – VictorT

Répondre