2010-03-05 5 views
0

Février 26 2010 21:34:00Quel est le format approprié de NSDateFormatter pour cette chaîne?

Sur la base de tous les documents que je peux trouver, MMMM, d yyyy H: m: s devrait être correct - mais mon NSDate dateFromString retourne null.

+0

Il fonctionne pour moi, aurait besoin de voir le code pour en dire plus. – cobbal

+0

Cette chaîne de format fonctionne correctement. Vérifiez que votre formateur et la date à laquelle vous le transmettez ne sont pas nuls. – nall

+0

Il s'avère que je réglais les paramètres régionaux dans cette méthode. - (NSDate *) getDateFromString: (NSString *) dtStr { \t NSDateFormatter * inputFormatter = [[NSDateFormatter alloc] init]; \t [inputFormatter setDateFormat: @ "MMMM, jj aaaa HH: mm: ss"]; \t NSDate * formatterDate = [inputFormatter dateFromString: dtStr]; \t [entréeFormatter autorelease]; \t return formatterDate; } Retiré et cela fonctionne maintenant. –

Répondre

0

J'ai déjà eu beaucoup de problèmes avec exactement ce genre de problème jusqu'à ce que je mette explicitement le formateur en locale. SystemLocale n'est pas bon parce qu'il peut être autre chose que en_US, affectant les noms de mois par exemple/semaine, etc. Ceci est un morceau de code de travail:

NSDateFormatter *fmt = [[[NSDateFormatter alloc] init] autorelease];  
[fmt setDateFormat:@"eee MMM dd HH:mm:ss Z yyyy"]; 
[fmt setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; 
NSDate *formattedDate = [fmt dateFromString:someStringContainingDate]; 
0

Dans quelle région le téléphone est-il configuré? Si ce n'est pas en_US, vous devrez définir le formateur de date à l'aide de setLocale.

+0

[inputFormatter setLocale: [NSLocale systemLocale]]; et je crois que c'est en_US –

Questions connexes