2013-10-08 32 views
0

我从Google服务器获取时间为PT4M30S,PT7M2S。如果它是第一个,即PT4M30S,那么我将它显示为4:30。但第二个是这样的7:2,我不想。我喜欢它就像7:02在ios中设置时间格式

这是我做了一些如何

NSString *[email protected]"M";           
    NSString *[email protected]"S"; 
    NSRange rang =[videoTimeString rangeOfString:m options:NSCaseInsensitiveSearch];     
if(rang.length==[m length]) 
    { 
     if(rang.length==[s length]) 
    { 
     NSString *string1=[videoTimeString stringByReplacingOccurrencesOfString:@"PT" withString:@""]; 
    NSString *string2=[string1 stringByReplacingOccurrencesOfString:@"M" withString:@":"]; 
    finalTime=[string2 stringByReplacingOccurrencesOfString:@"S" withString:@""];} 
    else{ 
    NSString *string1=[videoTimeString stringByReplacingOccurrencesOfString:@"PT" withString:@""]; 
         finalTime=[string1 stringByReplacingOccurrencesOfString:@"M" withString:@":00"]; 

         } 
        } 
       else{ 
        NSString *string1=[videoTimeString stringByReplacingOccurrencesOfString:@"PT" withString:@"0:"]; 
        finalTime=[string1 stringByReplacingOccurrencesOfString:@"S" withString:@""]; 
    } 

因此,任何帮助,将不胜感激。

由于

+2

请发表您迄今为止所做的一切。 –

+1

'>然后我显示它为4:30'怎么样? – bansi

回答

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; 
} 
相关问题