2010-03-03 5 views
1

Je stocke des dates dans mon NSMutableArray, je veux les récupérer et changer le format. Pour le moment, je fais ceci:NSDateFormater from NSMutableArray value


NSDate *myDate = [self.dates objectAtIndex:0]; 
NSLog(@"myDate:%@", myDate); // 2010-03-02 
NSDateFormatter *formatDate = [[NSDateFormatter alloc] init]; 
[formatDate setDateFormat:@"MMMM d YYYY"]; 

NSString *newDate = [formatDate stringFromDate:myDate]; 
NSLog(@"newDate: %@", newDate); // NULL 

le résultat pour newDate est NULL, et je veux que ce soit quelque chose comme ça: "3 Mars 2010"

grâce,

Répondre

1

Étant donné que votre tableau de dates contient des chaînes, vous devez convertir la chaîne en NSDate, puis vous pouvez reconvertir la date au format souhaité.

NSDateFormatter *strToDateFmt = [[NSDateFormatter alloc] init]; 
[strToDateFmt setDateFormat:@"yyyy-MM-dd"]; 
NSDate *myDate = [strToDateFmt dateFromString:[self.dates objectAtIndex:0]]; 
[strToDateFmt release]; 
NSLog(@"myDate:%@", myDate); 

NSDateFormatter *formatDate = [[NSDateFormatter alloc] init]; 
[formatDate setDateFormat:@"MMMM d YYYY"]; 
NSString *newDate = [formatDate stringFromDate:myDate]; 
[formatDate release]; 
NSLog(@"newDate: %@", newDate); 
+0

Je l'ai juste par moi-même juste après qu'ils m'ont dit de regarder la documentation, stringFromDate: était ma solution. Merci, votre code est le même et son fonctionnement – ludo

3

Cela fonctionne pour moi, mais je l'ai remplacé la première ligne avec:

NSDate *myDate = [NSDate date]; 

Ma sortie:

2010-03-02 19:29:08.045 app[11464:a0f] myDate:2010-03-02 19:29:08 -0800 
2010-03-02 19:29:08.048 app[11464:a0f] newDate: March 2 2010 

Ma meilleure estimation est que [self.dates objectAtIndex:0] ne retourne pas ce que vous voulez.

+0

thats Ce n'est pas ce que je veux, c'est trop facile si j'utilise la [date NSDate]; Je stocke déjà toutes mes dates dans un tableau maintenant je veux les utiliser, ma première ligne est bonne car je peux lire ma date – ludo

+0

@ludo, si votre tableau contenait une date, votre code fonctionnerait. Ce tableau contient autre chose. Votre deuxième ligne fonctionnerait si elle contenait des chaînes, par exemple. –

+0

En fait, je suppose que vous avez une chaîne de caractères, pas une date - c'est le cas le plus probable. –