如何将 NSArray 转换为 NSDate

How to convert NSArray to NSDate

我有一个包含日期的数组。我想将数组转换为 NSDate。然后转换后的 NSDate 存储在另一个 array.This 是我的数组。

uniqueItems (
 "2015-02-17",
"2015-02-09",
"2015-02-02",
"2015-01-27",
"2015-01-19",
"2015-01-12"
)

如何将这个数组转换为NSDate,并存储到另一个数组中。帮我编码。

假设你有一个数组如下:

NSArray *ary = [NSArray arrayWithObjects:@"2015-02-17",@"2015-02-09",@"2015-02-02", nil];

将每个字符串转换成日期:-

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
for(int i =0;i<ary.count;i++){

    NSDate *d = [[NSDate alloc]init];
    d = [dateFormatter dateFromString:ary[i]];
}

如果你想使用NSDateFormate,你也可以在循环中使用。

我能理解,因为你是新手,请按照以下步骤操作,但请记住先理解:-

1.Enumerate 您的数组以获取所有字符串(您理解的日期),并将它们添加到您想要的另一个数组中,如下所示:-

for (NSString *dateString in yourArrayofDates) {
    NSDate *date=[self getDateFromDateString:dateString];
    [yourAnotherDateArray addObject:date];
 }

2.Add 一种从字符串中获取 NSDate 的方法,如下所示:-

-(NSDate *)getDateFromDateString :(NSString *)dateString {
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:dateString];
return date;
}

首先将您的 NSString 转换为 NSDate

NSArray *arrr = @[ @"2015-02-17",
                   @"2015-02-09",
                   @"2015-02-02",
                   @"2015-01-27",
                   @"2015-01-19",
                   @"2015-01-12"];
NSMutableArray *arrDates = [[NSMutableArray alloc]init];           
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"yyyy-MM-dd"];
[df setTimeZone:[NSTimeZone systemTimeZone]];
for (int i = 0; i<arrr.count; i++) {
    [arrDates addObject:[df dateFromString:arrr[i]];;
}
NSLog(@"%@",arrDates);

现在对日期数组进行排序,因为您的数组包含 NSDate 对象。你没有钥匙所以不要传递任何钥匙

NSSortDescriptor *dateDescriptor = [NSSortDescriptor
                                    sortDescriptorWithKey:@""
                                    ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor];
NSArray *sortedDateArray = [arrDates sortedArrayUsingDescriptors:sortDescriptors];

NSLog(@"%@",sortedDateArray);