在ios中设置时间格式

时间:2013-10-08 08:10:23

标签: ios nsstring timezone nsdate

我从{@ 1}}获得了Google服务器的时间。如果它是第一个,即PT4M30S,PT7M2S,那么我将其显示为PT4M30S。但第二个就是这样4:30,我不想要它。我喜欢它像7:2

这就是我做了一些如何

7:02

所以任何帮助都会受到赞赏。

由于

1 个答案:

答案 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;
}