我有一个有日期的数组。我想将数组转换为NSDate。然后转换后的NSDate存储在另一个数组中。这是我的数组。
uniqueItems (
"2015-02-17",
"2015-02-09",
"2015-02-02",
"2015-01-27",
"2015-01-19",
"2015-01-12"
)
如何将此数组转换为NSDate,并存储到另一个数组。帮我编码。
答案 0 :(得分:5)
假设您有一个如下数组:
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 ,你也可以使用in循环。
答案 1 :(得分:4)
首先将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);
答案 2 :(得分:1)
我可以理解你是一个新手,按照这些步骤,但记得首先理解: -
1.枚举您的数组以获取所有字符串(您理解的日期),并将其添加到您想要的另一个数组中,如下所示: -
for (NSString *dateString in yourArrayofDates) {
NSDate *date=[self getDateFromDateString:dateString];
[yourAnotherDateArray addObject:date];
}
2.添加一个方法从字符串中获取NSDate,如下所示: -
-(NSDate *)getDateFromDateString :(NSString *)dateString {
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:dateString];
return date;
}