我有一个格式化的时间
// 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
这适用于MPMoviePlayer
,currentTime
属性是双倍的。对于我要显示数据的任何给定部分,我正在检查是否dataStartTime <= playerTime < dataEndTime
。所以我使用的是double
,因为这已经是currentTime
的类型了。
答案 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;
}