我正在编写一个赛车应用程序,想要将大量毫秒转换为minutes:seconds.milliseconds(例如1:32.361)。目前,我只是通过数学(minutes / 60000)进行运算,然后求余数并进一步除法,依此类推,但是我发现它时不时关闭1毫秒。我知道这听起来似乎没什么大不了的,但是我试图找到和的平均值,1:32.004然后1:32.004返回1:32.003,这意味着它输入不正确,而应用程序的其余部分无法处理。
1:32.361
minutes / 60000
1:32.004
1:32.003
有没有一种方法使用NSDate或NSDateFormatter格式化毫秒到MM或类似的东西:ss.mmm?
NSDate
NSDateFormatter
您可以创建一个TimeInterval扩展名来格式化您的经过时间,如下所示:
Xcode 8.3.3•Swift 3.1
extension TimeInterval { var minuteSecondMS: String { return String(format:"%d:%02d.%03d", minute, second, millisecond) } var minute: Int { return Int((self/60).truncatingRemainder(dividingBy: 60)) } var second: Int { return Int(truncatingRemainder(dividingBy: 60)) } var millisecond: Int { return Int((self*1000).truncatingRemainder(dividingBy: 1000)) } } extension Int { var msToSeconds: Double { return Double(self) / 1000 } }
let seconds = 131.531 // 131.531 let time = seconds.minuteSecondMS // "2:11.531" let millisecond = seconds.millisecond // 531 let ms = 1111 let sec = ms.msToSeconds.minuteSecondMS // "0:01.111"