【问题标题】:Convert string to time (not date) [duplicate]将字符串转换为时间(不是日期)[重复]
【发布时间】:2013-01-02 08:08:08
【问题描述】:

可能重复:
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。有什么建议?谢谢。

进一步仅供参考

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

【问题讨论】:

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


【解决方案1】:

这是解决方案,想法很简单,获取两个日期,一个是你的时间,一个是 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;
}

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2020-01-24
    • 1970-01-01
    相关资源
    最近更新 更多