2 alllllllll alllllllll 于 2013.03.27 17:14 提问

iphone在数组中排序日期

SQLite数据库中有下面的数组:

(
{ 
 id=1;
duedate = "01-Apr-2013";
},
{
 id=2;
duedate = "01-May-2013";
},
{
id=3;
duedate = "01-Jun-2013";
},

{
 id=4;
duedate = "11-Jul-2013";
}
)

排序的代码:

NSSortDescriptor *sortDesc = [[NSSortDescriptor alloc] initWithKey:@"duedate" ascending:YES];
[assessment_list sortUsingDescriptors:[NSArray arrayWithObject:sortDesc]];

但是最后出现的排序不对:

(

{ 
 id=1;
duedate = "01-Apr-2013";
},

{
id=3;
duedate = "01-Jun-2013";
},

{
id=2;
duedate = "01-May-2013";
},

{
 id=4;
duedate = "11-Jul-2013";
}

)

不知道为什么?

1个回答

xinyoulingxi1_tong
xinyoulingxi1_tong   2013.03.28 09:55
已采纳

因为它是按照字母顺序排列的

想根据日期排序,用下面的方法:

NSInteger dateSort(id dict1, id dict2, void* context){
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"mm/dd/yyyy"];
NSDate *date1 = [formatter dateFromString:[dict1 objectForKey:@"duedate"]];
NSDate *date2 = [formatter dateFromString:[dict2 objectForKey:@"duedate"]];
    return [[date1 compare:date2];
}

调用函数:

[dateArray sortUsingFunction:dateSort context:NULL];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【Java】数组--利用冒泡算法给日期排序
代码public class TestDateSort { public static void main(String[] args) { Date[] days = new Date[5]; //元素为引用类型的数组中的每一个元素都需要实例化 days[0] = new Date(2006, 5, 4); days[1] = new Da
js的数组按日期排序
升序排序 //升序排序 arr.sort(function(a, b) { if (a.doneTime < b.doneTime ) { return -1; } else if (a.doneTime > b.doneTime ) { return 1; } else {
PHP 里面的数组按照某个时间字段排序
$store_list = Array ( [0] => Array ( [name] => asdf [head] => /upload/thumbs/20150814220142_27630.jpg [img] => [content] => asdfasdfasdf
iOS如何对包含date的数组进行排序
1. [containdatearray sortUsingFunction:sortfuntion context:NULL]; 2. NSInteger sortArrayByDate(id dict1, id dict2, void* context){     //format the date     NSDateFormatter *formatter = [[NSDateFor
IOS对日期进行排序
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"2019/03/01/",@"2013/03/02",@"2013/03/07",@"2014/03/01/", [NSNull null], nil]; array = (NSMutableArray *)[array sortedArrayUsi
【Demo】IOS中将对象数组按照时间戳排序
将对象按照时间戳排序,这里典型的一个例子是登录账户的排序:本地客户端可能保存了多个账户信息,在登录窗口用户可以选择已经登陆过的账户直接登录,现在的需求是要时刻让最近登陆过的账户排在前面,对于每个账户,每次登陆时都记录下当前登陆的时间,时间是一个时间戳(从1970年到现在的秒数)。我们要做的是将时间戳排序,然后按照时间戳的顺序将所有账户排序。当然这也适用于其他关于时间排序的问题。 实现思路和过程1.
对数组以时间排序
timeArray是包含time字段的一个包括时间属性的数组 sortArray是整理后的数组 NSSortDescriptor*sorter=[[NSSortDescriptor alloc]initWithKey:@"time" ascending:YES];     NSMutableArray *sortDescriptors=[[NSMutableArray alloc
iOS根据日期、数值给model排序
iOS 根据模型中的某个属性,如字符串、数值、日期,对模型数组进行升降排序。
php 数组时间排序 array_multisort
思路:1.2018-03-20 16:19:00 格式。          2.php 函数   array_multisort(); 排序$arr = array( 'a'=&amp;gt;array( 'uid'=&amp;gt;12, 'name'=&amp;gt;'zhangsan1', 'ctime'=&amp;gt;'2018-03-20 11...
数组(时间格式)进行排序
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];     NSArray *descriptors = [NSArray arrayWithObject:descriptor];     NSArray *myDataArray = [NSArray