如何将 Int 转换为 Time(MM:SS.mm) swift

How to convert Int to Time(MM:SS.mm) swift

我有一个 Int,比如说 15344,我将它作为字符串发送到标签,但我希望它被格式化为 01:53.44

var split = data.valueForKeyPath("time") as! Int
cell.textLabel?.text = split.description

但这只给我 15344 没有格式。我试过 .stringbyAppendingformat 但没能成功。提前致谢!

这似乎是一种奇怪的时间格式化方式。有一个 NSDate api 使用 NSDateFormatter 来达到这个目的。可以在此处找到文档:

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/

您可能想使用:

func stringFromDate(_ date: NSDate) -> String

简单的解决方案是

先转成字符串,

let time = "15344"
let rangeOfSecond = Range(start: (advance(time.endIndex, -2)),
   end: time.endIndex)
let secondString = time.substringWithRange(rangeOfSecond)    

分钟

let rangeOfMinute = Range(start: (advance(time.endIndex, -4)),
   end: time.endIndex - 2)
let minuteString = time.substringWithRange(rangeOfMinute) 

小时也是如此。然后用“:”连接所有子字符串。

这是一种存储时间的奇怪方式,也许你应该想想 关于使用毫秒数代替。如果那不是一个选择, 你可以 "dissect" 整数

let time = 15344
let minutes = time / 10000
let seconds = (time / 100) % 100
let centis = time % 100

然后用

创建一个字符串
let text = String(format:"%d:%02d.%02d", minutes, seconds, centis)
print(text) // 1:53.44