来自NSMutableArray值的NSDateFormatter

时间:2010-03-03 03:24:48

标签: iphone objective-c nsdate

我在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,我希望它是这样的:“2010年3月3日”

感谢,

2 个答案:

答案 0 :(得分: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]没有返回你想要的东西。

答案 1 :(得分: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);