8

我有一个 NSString,其格式00:00:00.00最初来自[dateFormatter setDateFormat:@"HH:mm:ss.SS"];

如何获取该字符串并将其转换为 TimeInterval?

4

2 回答 2

6

如果你 100% 绝对肯定这种格式永远不会改变,那么这里有一个使用Cocoa中最有用的类之一的快速'n'dirty 解决方案:

- (NSTimeInterval)timeFromString:(NSString *)str
{
    NSScanner *scn = [NSScanner scannerWithString:str];

    int h, m, s, c;
    [scn scanInt:&h];
    [scn scanString:@":" intoString:NULL];
    [scn scanInt:&m];
    [scn scanString:@":" intoString:NULL];
    [scn scanInt:&s];
    [scn scanString:@"." intoString:NULL];
    [scn scanInt:&c];

    return h * 3600 + m * 60 + s + c / 100.0;
}
于 2012-12-06T16:43:08.273 回答
1

我想到了。比我想象的要简单得多:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"HH:mm:ss.SS"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
    NSDate *currentDate = [dateFormatter dateFromString:finishTimeString];
    NSTimeInterval interval = [currentDate timeIntervalSince1970];
于 2012-12-06T16:45:42.890 回答