2010-02-12 4 views
1

Pourquoi lDateFormattednil sur le simulateur iPhone 3.1.2 après avoir exécuté ce code?Pourquoi NSDateFormatter renvoie-t-il une valeur nulle?

NSString *lDateString = @"Wed, 17 Feb 2010 16:02:01"; 
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm:ss"]; 
NSDate *lDateFormatted = [dateFormatter dateFromString: lDateString ]; 

Toutes les idées ont apprécié, Merci

Répondre

1

Vous voulez certainement utiliser HH pendant des heures, c'est 0-23/style militaire En outre, vous devrez peut-être mettre les tiques simples autour de votre virgule comme ','

Référence: the UTS doc et date formatting guide.

+0

Dans ce cas, les tiques ne semblent pas être nécessaire, mais je les mets en tout cas. Merci! –

0

Le format DateFormatter est correct, mais vous avez probablement défini les paramètres régionaux incorrects. Essayez celui-ci (exemple de code de travail d'un de mes projets):

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
NSLocale * enUS = [[NSLocale alloc] initWithLocaleIdentifier: @ "en_US"];
[formatter setLocale: enUS];
[libération enUS];
[formatter setDateFormat: @ "EEE, jj MMM aaaa HH: mm: ss"];
...
[Communiqué de formatter]

+0

Attention: si l'appareil actuel est réglé sur l'heure militaire (format 24 heures), si vous forcez l'environnement local "en_US" dans NSDateFormatter, vous risquez de vous retrouver avec un objet date nul. –

Questions connexes