我正在尝试创建一个计时器应用程序并使用iOS8的NSDateComponentsFormatter。
如何为0到60之间的NSTimeInterval值输出格式正确的字符串?
如在Swift游乐场中所见,它似乎返回值1.我想返回一个字符串,其格式为NSTimeIntervals> 60,“0:12”。
注意:我知道我可以在几秒钟内手动占用时间并计算小时,分钟等,但不会使用NSDateComponentsFormatter。
// Playground - noun: a place where people can play
import UIKit
let dateComponentFormatter: NSDateComponentsFormatter = NSDateComponentsFormatter()
dateComponentFormatter.unitsStyle = NSDateComponentsFormatterUnitsStyle.Positional
for (var timeInterval: NSTimeInterval = -1; timeInterval < 100; timeInterval++) {
println("Time: \(dateComponentFormatter.stringFromTimeInterval(timeInterval))")
}
答案 0 :(得分:2)
我不完全确定您需要哪种格式,但您可以而且应该尝试allowedUnits
和zeroFormattingBehavior
例如此格式化程序配置
let dateComponentFormatter: NSDateComponentsFormatter = NSDateComponentsFormatter()
dateComponentFormatter.unitsStyle = NSDateComponentsFormatterUnitsStyle.Positional
dateComponentFormatter.allowedUnits = .CalendarUnitSecond | .CalendarUnitMinute
dateComponentFormatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehavior.allZeros
将创建这些字符串:
Time: 0:00
Time: 0:01
Time: 0:02
Time: 0:03
Time: 0:04
Time: 0:05
Time: 0:06
Time: 0:07
Time: 0:08
Time: 0:09
Time: 0:10