使用 NSDateComponentsFormatter 格式化为 MM:SS
Format to MM:SS using NSDateComponentsFormatter
我正在尝试使用 NSDateComponentsFormatter
:
格式化为 MM:SS
let formatter = NSDateComponentsFormatter()
formatter.zeroFormattingBehavior = .Pad
formatter.allowedUnits = .CalendarUnitMinute | .CalendarUnitSecond
let time: NSTimeInterval = 5
let timeText = formatter.stringFromTimeInterval(time)
问题是,即使我指定了 .Pad
,结果是 0:05
而不是 00:05
。
这是 Apple 文档中的相关内容:
static var Pad: NSDateComponentsFormatterZeroFormattingBehavior { get }
// Off: "1:0:10", On: "01:00:10"
我尝试添加 .CalendarUnitHour
只是为了尝试它并得到 H:MM:SS
而不是 HH:MM:SS
尽管文档说了什么。
如何填充文档中显示的第一个数字?
抱歉初始答案错误,无法在小时中添加前导零:
When days, hours, minutes, and seconds are allowed, the value is displayed as “0d 1:00:00” using the positional style, and as “0d 1h 0m 0s” using the abbreviated style.
如果您只需要将 NSTimeInterval 格式化为 HH:MM:SS 之类的字符串,请检查 this answer
我正在尝试使用 NSDateComponentsFormatter
:
MM:SS
let formatter = NSDateComponentsFormatter()
formatter.zeroFormattingBehavior = .Pad
formatter.allowedUnits = .CalendarUnitMinute | .CalendarUnitSecond
let time: NSTimeInterval = 5
let timeText = formatter.stringFromTimeInterval(time)
问题是,即使我指定了 .Pad
,结果是 0:05
而不是 00:05
。
这是 Apple 文档中的相关内容:
static var Pad: NSDateComponentsFormatterZeroFormattingBehavior { get }
// Off: "1:0:10", On: "01:00:10"
我尝试添加 .CalendarUnitHour
只是为了尝试它并得到 H:MM:SS
而不是 HH:MM:SS
尽管文档说了什么。
如何填充文档中显示的第一个数字?
抱歉初始答案错误,无法在小时中添加前导零:
When days, hours, minutes, and seconds are allowed, the value is displayed as “0d 1:00:00” using the positional style, and as “0d 1h 0m 0s” using the abbreviated style.
如果您只需要将 NSTimeInterval 格式化为 HH:MM:SS 之类的字符串,请检查 this answer