0

我有一个 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];
        }

响应是我需要的,但响应只有一个大字符串。所以我的数组只有一个对象。我需要在对象中分离这个大字符串。我怎样才能做到这一点??谢谢!

4

2 回答 2

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];
}

使用打印语句确认您的数组索引,然后您就可以上路了。

于 2013-05-31T20:34:03.170 回答
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]];
}
于 2013-06-01T05:54:57.270 回答