我有字典数组,在每个字典中都包含一个日期参数。日期参数数组(包含在词典中)如下:
[@"16-1-2015 7:00PM",@"15-1-2014 11:30AM",@"14-1-2014 7:00PM",
@"15-1-2015 6:30AM ".@"16-1-2015 8:30PM"]
我需要输出:
[@"16-1-2015 8:30PM",@"16-1-2015 7:00PM",@"15-1-2015 6:30AM ",
@"15-1-2014 11:30AM",@"14-1-2014 7:00PM"];
答案 0 :(得分:1)
你可以试试这个:
NSArray *dateStringArray = @[ @"16-1-2015 7:00PM", @"15-1-2014 11:30AM", @"14-1-2014 7:00PM", @"15-1-2015 6:30AM ", @"16-1-2015 8:30PM" ];
- (NSArray *)sortDateStringArray:(NSArray *)dateStringArray
{
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
[dateFormater setDateFormat:@"dd-MM-yyyy h:mma"];
NSArray *sortedArray = [dateStringArray sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
NSDate *date1 = [dateFormater dateFromString:obj1];
NSDate *date2 = [dateFormater dateFromString:obj2];
return [date2 compare:date1];
}];
return sortedArray;
}
我认为最好将dateString转换为NSDate然后比较
希望这有帮助!!!
答案 1 :(得分:0)
将日期作为NSDate
个对象存储在NSMutableArray
中,然后使用-[NSArray sortedArrayUsingSelector:] or -[NSMutableArray sortUsingSelector:]
并传递@selector(compare:)
作为参数。 -[NSDate compare:]
方法将按升序为您排序日期。这比创建NSSortDescriptor
更简单,并且比编写自己的比较函数简单得多。 (NSDate
对象知道如何将自己相互比较,至少与我们希望使用自定义代码一样有效。)
或者
如果我有NSMutableArray
个带有字段的对象" beginDate" NSDate
类型我使用的NSSortDescriptor
如下:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"beginDate" ascending:TRUE];
[myMutableArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
请访问此问题:here