Objective c “如何对日期进行排序”;年月日:年月日;关于日期和时间,按降序排列
如何排序此数组包含日期和时间,我需要为相同的日期排序,如果我有相同的日期多个条目,我需要根据时间按降序排序,它将按顺序显示所有条目Objective c “如何对日期进行排序”;年月日:年月日;关于日期和时间,按降序排列,objective-c,sorting,nsdate,nsdateformatter,nscalendar,Objective C,Sorting,Nsdate,Nsdateformatter,Nscalendar,如何排序此数组包含日期和时间,我需要为相同的日期排序,如果我有相同的日期多个条目,我需要根据时间按降序排序,它将按顺序显示所有条目 data= { { dateAndTime = "04/03/2017 09:52 PM"; deviceImage = ""; dialOrReceive = 0; number = "+918839752179"; profi
data= {
{
dateAndTime = "04/03/2017 09:52 PM";
deviceImage = "";
dialOrReceive = 0;
number = "+918839752179";
profilePhoto = "";
},
{
dateAndTime = "02/03/2017 06:54 PM";
deviceImage = "";
deviceImage = "";
dialOrReceive = 0;
number = "+918839752179";
profilePhoto = "";
},
{
dateAndTime = "04/03/2017 05:36 PM";
deviceImage = "";
dialOrReceive = 0;
number = "+918839752179";
profilePhoto = "";
},
{
dateAndTime = "03/03/2017 04:48 PM";
deviceImage = "";
dialOrReceive = 0;
number = "+918839752179";
profilePhoto = "";
}, {
dateAndTime = "03/03/2017 06:48 PM";
deviceImage = "";
dialOrReceive = 0;
number = "+918839752179";
profilePhoto = "";
},{
dateAndTime = "02/03/2017 09:36 PM";
deviceImage = "";
dialOrReceive = 0;
number = "+918839752179";
profilePhoto = "";
},
}
试试这个
- (void)sortDict {
NSDictionary *dict = @{
@"data" : @[@{
@"dateAndTime" : @"04/03/2017 09:52 PM",
@"deviceImage" : @"",
@"dialOrReceive" : @0,
@"number" : @"+918839752179",
@"profilePhoto" : @""
},
@{
@"dateAndTime" : @"02/03/2017 06:54 PM",
@"deviceImage" : @"",
@"dialOrReceive" : @0,
@"number" : @"+918839752179",
@"profilePhoto" : @""
},
@{
@"dateAndTime" : @"04/03/2017 05:36 PM",
@"deviceImage" : @"",
@"dialOrReceive" : @0,
@"number" : @"+918839752179",
@"profilePhoto" : @""
},
@{
@"dateAndTime" : @"03/03/2017 04:48 PM",
@"deviceImage" : @"",
@"dialOrReceive" : @0,
@"number" : @"+918839752179",
@"profilePhoto" : @""
},
@{
@"dateAndTime" : @"03/03/2017 06:48 PM",
@"deviceImage" : @"",
@"dialOrReceive" : @0,
@"number" : @"+918839752179",
@"profilePhoto" : @""
},
@{
@"dateAndTime" : @"02/03/2017 09:36 PM",
@"deviceImage" : @"",
@"dialOrReceive" : @0,
@"number" : @"+918839752179",
@"profilePhoto" : @""
},
@{
@"dateAndTime" : @"02/03/2017 07:36 AM",
@"deviceImage" : @"",
@"dialOrReceive" : @0,
@"number" : @"+918839752179",
@"profilePhoto" : @""
}
]
};
NSDateFormatter *formatter = [NSDateFormatter new];
formatter.dateFormat = @"dd/MM/yyyy hh:mm a";
NSArray *arr = [dict objectForKey:@"data"];
arr = [arr sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
NSDate *date1 = [formatter dateFromString:[obj1 objectForKey:@"dateAndTime"]];
NSDate *date2 = [formatter dateFromString:[obj2 objectForKey:@"dateAndTime"]];
return [date2 compare:date1];
}];
NSLog(@"%@", arr);
}
任何尝试,你都尝试了什么?请发布代码段key
data
的对象似乎是数组,而不是字典。您需要将日期字符串映射到NSDate
才能对数组进行排序。我正在成功地对日期进行排序:NSSortDescriptor*sortOrder=[NSSortDescriptor sortDescriptorWithKey:@“dateAndTime”升序:否];arr=[arr sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortOrder]];这一次我遇到了一些问题:(@kumar什么意思是“化妆单”?谢谢@schmidt9I正在排序,但也不是以正确的方式来的时间没有正确排序@schmidt9@kumar请再说一遍,日期和时间需要什么排序顺序?我需要排序顺序:比如2017年04月03日09:52 PM 2017年03月04日05:36 PM 2017年03月03日06:48 PM 2017年03月03日04:48 PM 2017年03月02日09:36 PM 2017年03月02日06:54PM@kumar好的,我编辑了我的答案,它按照这个顺序输出,我又添加了一条记录来检查AM案例