回答
你可以使用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. 如何在Java中的字符串数组中排序日期?
- 3. 在JavaScript中排序字符串日期数组
- 4. 日期和字符串排序对象数组angularjs
- 5. 排序数组与字符串中的日期无比较
- 6. 从一个字符串数组中排序日期
- 7. 如何按日期对$ _POST数组进行排序字符串
- 8. 按日期排序字符串MSSql
- 9. 按日期排序listBox字符串c#
- 10. 用字符串日期排序列表
- 11. 如何排序字符串的日期?
- 12. 排序字符串数组
- 13. 排序字符串数组
- 14. 排序字符串排列数组
- 15. 数字日期到字符串日期
- 16. 日期排序javascript数组
- 17. 排序日期数组TimeTime
- 18. 在字符串数组中排序字
- 19. 检查字符串数组排序:输出不符合预期
- 20. 特殊字符串排序列表,按日期排列
- 21. 对字符串数组进行排序
- 22. Objective C - 排序字符串数组
- 23. 如何排序字符串数组
- 24. 排序从字符串数组z-A
- 25. 排序两个因字符串数组
- 26. 排序字符串数组与PHP
- 27. PHP:由字符串键数组排序
- 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