NSDateFormater из значения NSMutableArray - PullRequest
1 голос
/ 03 марта 2010

Я храню некоторые даты в моем NSMutableArray, я хочу получить их и изменить формат. На данный момент я делаю это:


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

результат для newDate равен NULL, и я хочу, чтобы он был примерно таким: "3 марта 2010"

спасибо,

Ответы [ 2 ]

3 голосов
/ 03 марта 2010

Это работает для меня, но я заменил первую строку на:

NSDate *myDate = [NSDate date];

Мой вывод:

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

Мое лучшее предположение - то, что [self.dates objectAtIndex:0] не возвращает то, что вы хотите.

1 голос
/ 03 марта 2010

Поскольку ваш массив дат содержит строки, вы должны преобразовать строку в NSDate, а затем вы можете повторно преобразовать дату в нужный вам формат.

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);
...