回答
你可以使用sortedArrayUsingFunction
,考虑波纹管例如
NSString *str1 = @"03-07-2012";
NSString *str2 = @"01-07-2012";
NSString *str3 = @"02-07-2012";
NSArray *arr = [NSArray arrayWithObjects:str1, str2, str3, nil];
arr = [arr sortedArrayUsingFunction:dateSort context:nil];
//The date sort function
NSComparisonResult dateSort(NSString *s1, NSString *s2, void *context) {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy"];
NSDate *d1 = [formatter dateFromString:s1];
NSDate *d2 = [formatter dateFromString:s2];
return [d1 compare:d2]; // ascending order
return [d2 compare:d1]; // descending order
}
或遵循相同的想法,因为caseInsensitiveCompare:返回预期的结果,但升序,你可以跳过格式化字符串作为日期,只是返回[s2 caseInsensitiveCompare:s1] – 2012-07-07 10:51:17
,但它不会在字符串像2012年7月1日,1 -jun-2012 – 2012-07-07 10:52:23
因此引入了我的回复。但在这个特殊的例子中,这实际上会起作用:) – 2012-07-07 11:06:52
隐蔽的NSString日期到NSDate对象和比基于日期的排序数组
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss ZZZ"];
NSDate *date = [dateFormatter dateFromString:dateStr];
NSComparisonResult dateSort(NSString *s1, NSString *s2, void *context) {
NSDate *d1 = [NSDate dateWithString:s1];
NSDate *d2 = [NSDate dateWithString:s2];
return [d1 compare:d2];
}
NSArray *sorted = [unsorted sortedArrayUsingFunction:dateSort context:nil];
- 1. 排序日期字符串
- 2. 排序包含字符串,日期和数字的数组
- 3. 在ObjectiveC中排序数组
- 4. 如何在Java中的字符串数组中排序日期?
- 5. 日期和字符串排序对象数组angularjs
- 6. 在数组中排序日期字符串
- 7. 排序存储在一个字符串中的日期数组
- 8. 排序日期的数组与字符串中混合
- 9. 排序日期数组中的一个字符串
- 10. 排序日期为字符串的数组JavaScript
- 11. 从一个字符串数组中排序日期
- 12. 排序数组与字符串中的日期无比较
- 13. 如何按日期对$ _POST数组进行排序字符串
- 14. 在JavaScript中排序字符串日期数组
- 15. 按日期排序listBox字符串c#
- 16. 按日期排序字符串MSSql
- 17. 用字符串日期排序列表
- 18. 如何排序字符串的日期?
- 19. 按日期排序的MYSQL(字符串)
- 20. 排序字符串数组
- 21. 排序字符串数组
- 22. 排序字符串数组
- 23. 排序字符串数组
- 24. 排序字符串数组
- 25. 排序字符串排列数组
- 26. 日期排序javascript数组
- 27. 排序日期数组TimeTime
- 28. 在日期排序数组
- 29. 数字日期到字符串日期
- 30. 在字符串数组中排序字
你有NSArray的字符串? – 2012-07-07 10:05:32
是的,我已经与caseInsensitiveCompare:方法,但它返回升序不降序 – 2012-07-07 10:07:29
是否有任何理由你不能使用NSDate *? – ratbum 2012-07-07 10:13:15