Ios Swift:根据秒数格式化时间字符串
我的应用程序中有一个NSTimer对象,它以秒为单位计算运行时间 我想在我的应用程序界面中设置UILabel的格式,使其符合众所周知的标准 范例 00:01-一秒钟 01:00-60秒 01:50:50-6650秒 我想知道如何做到这一点,您知道有没有基于Int秒数创建此类字符串的播客/库 显然,我自己也可以使用一种复杂的方法,但由于建议不要重新发明轮子,我更喜欢使用一些现成的解决方案 我没有在基础库中找到任何相关的东西,也没有在HealthKIT 中找到任何相关的东西。 你对如何完成这件事有什么建议吗?如果你说自己去写——没关系。但我想确定我没有错过任何简单、直接的解决方案 提前感谢根据答案算出,很简单Ios Swift:根据秒数格式化时间字符串,ios,swift,nsdate,nstimer,Ios,Swift,Nsdate,Nstimer,我的应用程序中有一个NSTimer对象,它以秒为单位计算运行时间 我想在我的应用程序界面中设置UILabel的格式,使其符合众所周知的标准 范例 00:01-一秒钟 01:00-60秒 01:50:50-6650秒 我想知道如何做到这一点,您知道有没有基于Int秒数创建此类字符串的播客/库 显然,我自己也可以使用一种复杂的方法,但由于建议不要重新发明轮子,我更喜欢使用一些现成的解决方案 我没有在基础库中找到任何相关的东西,也没有在HealthKIT 中找到任何相关的东西。 你对如何完成这件事有什
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
}
NSDATEComponentsFormter可以执行以下操作:
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
@埃里卡娅,谢谢!你能给我举个例子吗?非常欣赏这是一种非常有趣的方式,但很难想出: