2009-10-13 6 views
1

Dans les Apple Docs, ils disent que NSDateFormatter utilise l'Unicode pour spec. J'ai lu les spécifications, mais je vais avoir des problèmes d'interprétation de cette date:Comment interprétez-vous les dates avec NSDateFormatter?

NSDateFormatter *frm = [[NSDateFormatter alloc] init]; 
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"]; 
NSLog(@"Tue Oct 13 09:24:15 +0000 2009 becomes %@", [frm dateFromString:@"Tue Oct 13 09:24:15 +0000 2009"]); 

Ce code imprime:

2009-10-13 11:37:40.334 test2[1704:20b] Tue Oct 13 09:24:15 +0000 2009 becomes (null) 

Répondre

2

Désolé les gars, pensé à elle déjà. NSDateFormatter utilise par défaut les paramètres régionaux actuels du système. Dans l'exemple de code ci-dessus, il échoue que si vous définissez vos paramètres régionaux du système autre chose que des États-Unis Pour résoudre ce problème, juste avant de définir les paramètres régionaux à celui utilisé par votre chaîne de date, comme ceci:

[frm setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; 
+0

Je J'ai juste eu des problèmes avec la même chose. Cela concernait le réglage actuel de la date et de l'heure (12/24 heures). J'essayais d'analyser la date '2004-11-29 16: 01: 26' en utilisant' aaaa-MM-jj HH: mm: ss'. Ne fonctionnerait que si je forçais les paramètres régionaux: '[dateFormatter setLocale: [[[NSLocale alloc] initWithLocaleIdentifier: @" en_GB "] autorelease]];' Confus mais ça marche! –

Questions connexes