我正在编写一个赛车应用程序,并希望将大量毫秒转换为分钟:seconds.milliseconds(例如,1:32.361).目前我只是通过数学(minutes / 60000)来做,然后得到余数并进一步划分,等等,但我发现它偶尔会消失1毫秒.我知道这可能听起来不是什么大不了的,但我试图找到的平均1:32.004,并1:32.004和它返回1:32.003,这意味着它被放置在错误和应用程序的其他部分不能处理它.
有没有办法使用NSDate或NSDateFormatter类似的东西将毫秒格式化为MM:ss.mmm?
我查看过这些来源但未找到答案:
如何将毫秒转换为分钟?
将秒转换为分钟和秒
将毫秒转换为分钟
http://www.codingexplorer.com/swiftly-getting-human-readable-date-nsdateformatter/
Leo*_*bus 21
您可以创建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
}
}
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)