如何解析像字符串值12:02:21.3213
来NSTimeInterval
?NSDateComponentsFormatter
自iOS8起可用,仅支持格式化,不支持解析.
Bartosz Hernas提供的解决方案为我工作,谢谢!
为方便起见,这里是Swift 3:
func parseDuration(_ timeString:String) -> TimeInterval {
guard !timeString.isEmpty else {
return 0
}
var interval:Double = 0
let parts = timeString.components(separatedBy: ":")
for (index, part) in parts.reversed().enumerated() {
interval += (Double(part) ?? 0) * pow(Double(60), Double(index))
}
return interval
}
Run Code Online (Sandbox Code Playgroud)
以下是在Swift中如何做到这一点:
func parseDuration(timeString:String) -> NSTimeInterval {
guard !timeString.isEmpty else {
return 0
}
var interval:Double = 0
let parts = timeString.componentsSeparatedByString(":")
for (index, part) in parts.reverse().enumerate() {
interval += (Double(part) ?? 0) * pow(Double(60), Double(index))
}
return interval
}
Run Code Online (Sandbox Code Playgroud)
它适用于像
2:12:12
,
02:01:23.123213
这是我用@Bartosz 回答的 Swift 5 版本
extension String {
func convertToTimeInterval() -> TimeInterval {
guard self != "" else {
return 0
}
var interval:Double = 0
let parts = self.components(separatedBy: ":")
for (index, part) in parts.reversed().enumerated() {
interval += (Double(part) ?? 0) * pow(Double(60), Double(index))
}
return interval
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4708 次 |
最近记录: |