Hil*_*laj 2 objective-c nsdate ios
我有一个NSMutableArray,其中包含字符串格式的日期.在这里,我需要按日期的升序排序该数组.我用了强文
NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES];
NSArray *descriptors=[NSArray arrayWithObject: descriptor];
NSArray *reverseOrder=[dateArray sortedArrayUsingDescriptors:descriptors];
Run Code Online (Sandbox Code Playgroud)
但它只按日期和月份的升序排序日期.年份不予考虑.请帮我.例如,Array包含
03/09/2017, 03/06/2016, 01/06/2016,01/04/2016 and 03/01/2017.
Run Code Online (Sandbox Code Playgroud)
使用上面的代码行后,Array包含like,
01/04/2018, 01/06/2016, 03/01/2017, 03/06/2016, 03/09/2016
Run Code Online (Sandbox Code Playgroud)
你需要sortedArrayUsingComparator像这样使用String数组来排序日期.
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd/yyyy"];
NSArray *sortedArray = [yourArray sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
NSDate *d1 = [df dateFromString: obj1];
NSDate *d2 = [df dateFromString: obj2];
return [d1 compare: d2];
}];
Run Code Online (Sandbox Code Playgroud)
注意:设置日期的格式根据您的日期,很难从您的示例中预测日期格式,这就是我使用过的原因MM/dd/yyyy,如果您的日期包含格式,dd/MM/yyyy则使用它.
| 归档时间: |
|
| 查看次数: |
3691 次 |
| 最近记录: |