2010-03-03 17 views
1

我在我的NSMutableArray中存儲了一些日期,我想檢索它們並更改格式。 目前我做到這一點:來自NSMutableArray的NSDateFormater值


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結果是空的,我想這是類似的東西:「2010年3月3日」

感謝,

回答

1

由於您的日期數組包含字符串,您必須將該字符串轉換爲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); 
+0

我只是在他們告訴我看文檔時,我自己就是這樣,stringFromDate:是我的解決方案。謝謝你,你的代碼是一樣的,它的工作 – ludo 2010-03-03 04:30:54

3

這一工程對我來說,但我替換第一行:

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]沒有返回你想要的。

+0

多數民衆贊成不是我想要的,它太容易,如果我使用[NSDate日期]; 我已經將所有日期存儲在數組中,現在我想使用它們,我的第一行很好,因爲我可以讀取日期 – ludo 2010-03-03 03:34:05

+0

@ludo,如果數組包含日期,那麼您的代碼將起作用。該數組包含其他內容。例如,如果它的第二行包含字符串,它將起作用。 – 2010-03-03 03:35:48

+0

其實,我猜想你有一個字符串在那裏,而不是一個日期 - 這是最有可能的情況。 – 2010-03-03 03:37:47