1

可能重复:
小时分钟秒到秒 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. 有什么建议么?谢谢。

进一步仅供参考

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

4

1 回答 1

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;
}
于 2013-01-18T16:00:00.617 回答