NSDateComponentsFormatter

NSDateComponentsFormatter

我正在尝试创建一个计时器应用程序并利用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))")
}

最佳答案

我不完全确定您需要什么格式,但您可以也应该尝试使用allowedUnitszeroFormattingBehavior
例如,此格式化程序配置

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

10-08 12:26