Question

Je le code suivant:

[ [NSDate date] descriptionWithLocale: @"yyyy-MM-dd" ]

Je veux revenir une date dans le format suivant: "2009-04-23"

Mais il retourne: le jeudi 23 Avril, 2009 23:27:03 GMT + 03: 00

Qu'est-ce que je fais mal?

Je vous remercie à l'avance.

Était-ce utile?

La solution

Vous utilisez la mauvaise méthode. Essayez plutôt descriptionWithCalendarFormat:timeZone:locale:

[[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%d"
                                    timezone:nil
                                      locale:nil];

Notez également que la méthode attend un format différent de celui de votre question. La documentation complète pour que l'on peut trouver ici .

EDIT: Bien que Mike a noté, vous devriez vraiment être en utilisant NSDateFormatter. Il y a quelques problèmes avec descriptionWithCalendarFormat:timezone:locale: que Apple mentionne dans la documentation.

Autres conseils

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];  // delete this line if your project uses ARC
NSLog(@"%@",dateString); 

A noter également que pour la plupart des cas, NSDateFormatter est préférable pour sa flexibilité.

Il y a aussi un avantage significatif de performance à être de la réutilisation de la date dans de nombreuses applications formatteurs.

Si vous ne disposez pas NSDate -descriptionWithCalendarFormat:timeZone:locale: disponible (je ne crois pas l'iPhone / Cocoa Touch comprend cela) vous devrez peut-être utiliser strftime et singe autour avec quelques chaînes de style C. Vous pouvez obtenir l'horodatage UNIX à partir d'un NSDate en utilisant NSDate -timeIntervalSince1970.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top