我从{@ 1}}获得了Google服务器的时间。如果它是第一个,即PT4M30S,PT7M2S
,那么我将其显示为PT4M30S
。但第二个就是这样4:30
,我不想要它。我喜欢它像7:2
。
这就是我做了一些如何
7:02
所以任何帮助都会受到赞赏。
由于
答案 0 :(得分:1)
以下方法将采用PT7M2S
格式的字符串并将其转换为7:02
。
- (NSString *)parseGoogleTime:(NSString *)time
{
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"PT(\\d+)M(\\d+)S"
options:NSRegularExpressionCaseInsensitive
error:&error];
if (error) {
return nil;
}
NSArray *matches = [regex matchesInString:time options:0 range:NSMakeRange(0, time.length)];
if (matches.count == 0) {
return nil;
}
NSTextCheckingResult *match = matches[0];
NSMutableString *parsedTime = [NSMutableString string];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
for (NSUInteger i = 1; i < match.numberOfRanges; i++) {
NSString *substringForMatch = [time substringWithRange:[match rangeAtIndex:i]];
NSInteger timePart = [[formatter numberFromString:substringForMatch] integerValue];
[parsedTime appendFormat:i == 1 ? @"%i:" : @"%02i", timePart];
}
return parsedTime;
}