我有一个NSArray,它通过JSON获取WS的一些日期值。 这就是我的NSLOG回归: “2013-05-31T17:00:00Z” “2013-05-31T17:30:00Z” “2013-05-31T18:00:00Z” “2013-05-31T20:00:00Z” ...
我需要一个新的NSArray返回小时和分钟,就像那样: “17:00”, “17:30”, “18:00”, “20:00”, ...
我做的事情是:
for (int a =0; a<array2.count; a++)
{
NSString *myString = [array2 objectAtIndex:a];
NSString *horaDeInicio = [myString substringWithRange:NSMakeRange(11, 5)];
[horariosProgramas addObject:horaDeInicio];
}
响应是我所需要的,但响应只有一个大字符串。所以我的数组只有一个对象。我需要在对象中分开这个大字符串。我怎样才能做到这一点?? 谢谢!
答案 0 :(得分:3)
将它与T和Z字符分开。做这样的事情:
for (int a =0; a<array2.count; a++)
{
NSString *myString = [array2 objectAtIndex:a];
NSArray *arr = [myString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"TZ"]];
NSString *yourDate = [arr objectAtIndex:1];
[horariosProgramas addObject:yourDate];
}
使用print语句确认您的数组索引,您就可以了。
答案 1 :(得分:0)
使用dateFormatter转换日期从长远来看会更好,并且您想要更改显示格式或其他东西
NSArray *array2= @[@"2013-05-31T17:00:00Z",
@"2013-05-31T17:30:00Z",
@"2013-05-31T18:00:00Z",
@"2013-05-31T20:00:00Z"];
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"en_US_POSIX"]];
NSString *inputDateFormat = @"yyyy-MM-dd'T'HH:mm:ss'Z'";
NSString *outputDateFormat = @"HH:mm";
for (NSString *dateString in array2) {
[dateFormatter setDateFormat:inputDateFormat];
NSDate *date = [dateFormatter dateFromString:dateString];
[dateFormatter setDateFormat:outputDateFormat];
[horariosProgramas addObject:[dateFormatter stringFromDate:date]];
}