日期时间格式器给出错误的日期

时间:2014-08-12 06:30:12

标签: ios nsdate nsdateformatter

我想实现日期排序。以下是我正在使用的代码:

NSArray *sorters = @[[NSSortDescriptor sortDescriptorWithKey:@"reviewed_datetime" ascending:NO comparator:^(id obj1, id obj2) {

    NSString *strObj1 = [@"" stringByAppendingFormat:@"%@",obj1];
    NSString *strObj2 = [@"" stringByAppendingFormat:@"%@",obj2];

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"MMM dd, YYYY | HH:mm a"];
    NSDate *n1 = [formatter dateFromString:strObj1]; NSLog(@"date n1 : %@",n1);
    NSDate *n2 = [formatter dateFromString:strObj2]; NSLog(@"date n2: %@",n2);

    return [n1 compare:n2];
}]];

NSArray *sortedLoc = [locReview sortedArrayUsingDescriptors:sorters];
[locReview removeAllObjects];
[locReview addObjectsFromArray:sortedLoc];

问题是我解析的日期是(见上面的变量代码):obj1 =Apr 7, 2014 | 2:45 PM

n1的日期是2013-12-22 07:21:00 +0000

我哪里出错了?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

将YYYY改为yyyy,你应该没事。 YYYY用于“周 - 年”ISO日历,可能与日历年不同。

相关问题