8

00:00:00.00元から取得した形式の NSString があります[dateFormatter setDateFormat:@"HH:mm:ss.SS"];

その文字列を取得して TimeInterval に変換するにはどうすればよいですか?

4

2 に答える 2

6

この形式が決して変わらないという 100% の確信がある場合は、Cocoa で最も便利なクラスの 1 つを使用した簡単なソリューションを次に示します。

- (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 に答える