回答
你可以使用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