NSDateFormatter返回NULL

时间:2014-01-12 05:55:32

标签: objective-c cocoa nsdateformatter

我所要做的就是用“EEEE,MMMM dd”格式(例如“星期六,1月11日”)格式化日期。无论我做什么,我都会得到一个空结果。

- (NSString *) formatDate : (NSDate *) date
{
    if (!date)
        NSLog(@"what is going on!");

    NSLog(@"%@", date);
    NSString *strDate = [NSString stringWithFormat:@"%@", date];
    NSLog(@"%@", strDate);

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEEE, MMMM dd"];

    NSDate *formattedDate = [dateFormatter dateFromString:strDate];

    NSLog(@"Formatted Date: %@", [NSString stringWithFormat:@"%@", formattedDate]);
    return [NSString stringWithFormat:@"%@", formattedDate];
}

这是我的输出:

2014-01-12
2014-01-12
Formatted Date: (null)

任何人都能看到我做错了什么?

我正在遵循此post的已接受解决方案中的前4行。

1 个答案:

答案 0 :(得分:1)

- (NSString *)formatDate:(NSDate *)date
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEEE, MMMM dd"];

    NSString *returnString = [dateFormatter stringFromDate:date];

    NSLog(@"Formatted Date: %@", returnString);

    return returnString;
}

您需要使用stringFromDate:,而不是dateFromString:

我记录了

  

2014-01-12 00:14:20.096 StackOverFlowDate [84614:a0b]格式化日期:1月12日星期日