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