IOS對日期進行排序
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"2019/03/01/",@"2013/03/02",@"2013/03/07",@"2014/03/01/", [NSNull null], nil]; array = (NSMutableArray *)[array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy/MM/dd/"]; if (obj1 == [NSNull null]) { obj1 = @"0000/00/00"; } if (obj2 == [NSNull null]) { obj2 = @"0000/00/00"; } NSDate *date1 = [formatter dateFromString:obj1]; NSDate *date2 = [formatter dateFromString:obj2]; NSComparisonResult result = [date1 compare:date2]; return result == NSOrderedAscending; }]; for (int i = 0; i < [array count]; i++) { NSLog(@"%@", [array objectAtIndex:i]); }
在項目裡需要對資料進行排序,這裡類比一個數組,由於項目中返回的json的key對應的value為空白,所以排序的時候需要判斷obj1和obj2是否為空白,還有升序和降序的問題根據
return result == NSOrderedAscending; 升序
return result == NSOrderedDescending; 降序
升序結果:
2015-06-16 17:16:14.930 TestH5[15888:669365] 2019/03/01/2015-06-16 17:16:14.930 TestH5[15888:669365] 2014/03/01/2015-06-16 17:16:14.931 TestH5[15888:669365] 2013/03/072015-06-16 17:16:14.931 TestH5[15888:669365] 2013/03/022015-06-16 17:16:14.931 TestH5[15888:669365]
降序結果:
2015-06-16 17:17:21.692 TestH5[15946:671080] 2013/03/022015-06-16 17:17:21.692 TestH5[15946:671080] 2013/03/072015-06-16 17:17:21.692 TestH5[15946:671080] 2014/03/01/2015-06-16 17:17:21.692 TestH5[15946:671080] 2019/03/01/2015-06-16 17:17:21.692 TestH5[15946:671080]