我正在尝试创建一个计时器应用程序并利用iOS8的NSDateComponentsFormatter。
如何为介于0和60之间的NSTimeInterval值输出格式正确的字符串?
正如在Swift操场上看到的,它似乎返回了1的值。我想返回一个字符串,其格式在nstimeInterval>60,“0:12”上看到。
注意:我知道我可以手动计算时间(以秒为单位),并计算小时、分钟等,但这不会使用nsdatecomponentsformeter。
// 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))")
}
最佳答案
我不完全确定您需要什么格式,但您可以也应该尝试使用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