Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:根据秒数格式化时间字符串_Ios_Swift_Nsdate_Nstimer - Fatal编程技术网

Ios Swift:根据秒数格式化时间字符串

Ios Swift:根据秒数格式化时间字符串,ios,swift,nsdate,nstimer,Ios,Swift,Nsdate,Nstimer,我的应用程序中有一个NSTimer对象,它以秒为单位计算运行时间 我想在我的应用程序界面中设置UILabel的格式,使其符合众所周知的标准 范例 00:01-一秒钟 01:00-60秒 01:50:50-6650秒 我想知道如何做到这一点,您知道有没有基于Int秒数创建此类字符串的播客/库 显然,我自己也可以使用一种复杂的方法,但由于建议不要重新发明轮子,我更喜欢使用一些现成的解决方案 我没有在基础库中找到任何相关的东西,也没有在HealthKIT 中找到任何相关的东西。 你对如何完成这件事有什

我的应用程序中有一个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

@埃里卡娅,谢谢!你能给我举个例子吗?非常欣赏这是一种非常有趣的方式,但很难想出: