我的应用中有一个NSTimer对象,以秒为单位计算经过的时间。
我希望在我的应用程序界面中格式化UILabel,使其符合众所周知的标准。
示例
00:01 - 一秒
01:00 - 60秒
01:50:50 - 6650秒
我想知道怎么做,你知道任何基于Int秒数创建这样的String的pod / library吗?
显然我自己可以采用复杂的方法,但由于建议不要重新发明轮子,我宁愿使用一些现成的解决方案。
我还没有在Foundation库中找到任何相关内容,也没有在HealthKit中找到相关内容
您对如何完成任务有什么建议吗?如果你说"去自己写吧#34; - 没关系。但我想确保我不会错过任何简单明了的解决方案。
提前致谢
答案 0 :(得分:3)
(NS)DateComponentsFormatter
可以做到这一点:
func timeStringFor(seconds : Int) -> String
{
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.second, .minute, .hour]
formatter.zeroFormattingBehavior = .pad
let output = formatter.string(from: TimeInterval(seconds))!
return seconds < 3600 ? output.substring(from: output.range(of: ":")!.upperBound) : output
}
print(timeStringFor(seconds:1)) // 00:01
print(timeStringFor(seconds:60)) // 01:00
print(timeStringFor(seconds:6650)) // 1:50:50
答案 1 :(得分:0)
根据this回答计算出来,非常简单!
func createTimeString(seconds: Int)->String
{
var h:Int = seconds / 3600
var m:Int = (seconds/60) % 60
var s:Int = seconds % 60
let a = String(format: "%u:%02u:%02u", h,m,s)
return a
}