【发布时间】:2013-08-27 10:18:12
【问题描述】:
我想按降序对包含日期字符串的数组进行排序,我已经尝试过 SO 答案,但我得到错误的输出。
请看我的代码如下:
NSArray *dateArray=[NSArray arrayWithObjects:@"01/12/2012",@"01/26/2011",@"02/09/2005",@"02/24/2006",@"03/19/2007",@"07/14/2011",@"08/17/2007",@"10/04/2007",@"10/31/2006",@"12/05/2012",@"12/06/2006",@"12/23/2008",nil];
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MM/DD/YYYY"];
NSMutableArray *tempArr=[[NSMutableArray alloc]init];
for (int i=0; i<[dateArray count]; i++) {
NSString *dt=[dateArray objectAtIndex:i];
NSDate *newDt=[formatter dateFromString:dt];
[tempArr addObject:newDt];
}
NSLog(@"tempArr is %@",tempArr);
我得到如下控制台输出:
2013-08-27 15:29:50.418 样本[3688:c07] tempArr 是 ( "2011-12-24 18:30:00 +0000", "2010-12-18 18:30:00 +0000", "2004-12-18 18:30:00 +0000", "2005-12-24 18:30:00 +0000", "2006-12-23 18:30:00 +0000", "2010-12-18 18:30:00 +0000", "2006-12-23 18:30:00 +0000", "2006-12-23 18:30:00 +0000", "2005-12-24 18:30:00 +0000", "2011-12-24 18:30:00 +0000", "2005-12-24 18:30:00 +0000", “2007-12-22 18:30:00 +0000” )
我不知道为什么“12”代替了月份,而且日期格式也不像我指定的格式。
【问题讨论】:
-
MM/DD/YYYY日期格式错误,请使用MM/dd/yyyy。见unicode.org/reports/tr35/tr35-25.html#Date_Field_Symbol_Table -
@rckoenes 是对的。你到底是在哪里排序的?
-
@rckoenes 是的,我做了这个改变,但我仍然得到相同的输出。
-
看我的回答。在您的代码中,您实际上并没有对任何内容进行排序。如果你想要一个数组按特定顺序排序,你必须实际排序它。
-
阅读一下 NSArray 的规范吧?
标签: ios iphone objective-c nsdate nsdateformatter