将字符串转换为时间(不是日期)

时间:2013-01-18 15:17:03

标签: iphone ios objective-c cocoa time-format

  

可能重复:
  hours minutes seconds to seconds ios

我有一个格式化的时间

// format: HH:mm:ss,AAA
// example for 2 hours, 35 minutes, 15 seconds, and 207 milliseconds
02:35:15,207

我正在尝试将其转换为秒作为双倍。上面的例子将变成:

// 2 hrs * 3600 + 25 min * 60 + 15.207
9315.207

我想我可以用扫描仪拆开每个元素,但我想这可能是一种更简单的方法。我尝试使用NSDateFormatter,但我需要将其作为双精度版,而不是NSDate。有什么建议?感谢。

进一步的FYI

这适用于MPMoviePlayercurrentTime属性是双倍的。对于我要显示数据的任何给定部分,我正在检查是否dataStartTime <= playerTime < dataEndTime。所以我使用的是double,因为这已经是currentTime的类型了。

1 个答案:

答案 0 :(得分:2)

这是解决方案,想法很简单,用你的时间得到两个约会对象,然后用00:00:00,000时间取一个约会时间。

- (double)secondsFromString:(NSString*)str {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss,SSS"];
    NSString *dateString = @"1970-01-01";
    NSDate *date = [formatter dateFromString:[NSString stringWithFormat:@"%@ %@",dateString,str]];
    NSDate *refDate = [formatter dateFromString:[NSString stringWithFormat:@"%@ 00:00:00,000",dateString]];
    double time = [date timeIntervalSince1970] - [refDate timeIntervalSince1970];
    return time;
}