【问题标题】:Format to MM:SS using NSDateComponentsFormatter使用 NSDateComponentsFormatter 格式化为 MM:SS
【发布时间】:2015-03-12 16:13:11
【问题描述】:

我正在尝试使用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,尽管文档说了什么。

如何填充文档中显示的第一个数字?

【问题讨论】:

  • 这太疯狂了,但我得到了完全相反的结果。使用带有DateComponentsFormatter 的快速游乐场我得到00:05。但是,我想要0:05

标签: ios macos cocoa-touch foundation nsdatecomponentsformatter


【解决方案1】:

抱歉,初始答案有误,无法在小时前添加前导零:

当允许天、小时、分钟和秒时,该值使用位置样式显示为“0d 1:00:00”,使用缩写样式显示为“0d 1h 0m 0s”。

如果您只需要将 NSTimeInterval 格式化为 HH:MM:SS 等字符串,请检查 this answer

【讨论】:

    猜你喜欢
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2019-01-04
    • 2013-08-04
    相关资源
    最近更新 更多