从NSTimeInterval迅速转换为时,分,秒,毫秒

我的代码在这里:

func stringFromTimeInterval(interval:NSTimeInterval) -> NSString {

var ti = NSInteger(interval)

var ms = ti * 1000

var seconds = ti % 60

var minutes = (ti / 60) % 60

var hours = (ti / 3600)

return NSString(format: "%0.2d:%0.2d:%0.2d",hours,minutes,seconds,ms)

}

在输出中毫秒数会给出错误的结果。请给出一个如何正确找到毫秒数的想法。

回答:

Swift支持对浮点数进行余数计算,因此我们可以使用% 1

var ms = Int((interval % 1) * 1000)

如:

func stringFromTimeInterval(interval: TimeInterval) -> NSString {

let ti = NSInteger(interval)

let ms = Int((interval % 1) * 1000)

let seconds = ti % 60

let minutes = (ti / 60) % 60

let hours = (ti / 3600)

return NSString(format: "%0.2d:%0.2d:%0.2d.%0.3d",hours,minutes,seconds,ms)

}

结果:

stringFromTimeInterval(12345.67)                   "03:25:45.670"

斯威夫特4:

extension TimeInterval{

func stringFromTimeInterval() -> String {

let time = NSInteger(self)

let ms = Int((self.truncatingRemainder(dividingBy: 1)) * 1000)

let seconds = time % 60

let minutes = (time / 60) % 60

let hours = (time / 3600)

return String(format: "%0.2d:%0.2d:%0.2d.%0.3d",hours,minutes,seconds,ms)

}

}

用:

self.timeLabel.text = player.duration.stringFromTimeInterval()

以上是 从NSTimeInterval迅速转换为时,分,秒,毫秒 的全部内容, 来源链接: utcz.com/qa/435495.html

回到顶部