如何使用 DateComponentsFormatter 格式化 HH:MM 中 00:00 的时间间隔偏移量

How to format time interval offset from 00:00 in HH:MM using DateComponentsFormatter

我有一个以毫秒为单位的值,我想以 HH:MM 格式显示

示例:

我尝试了以下逻辑,但没有成功。


    func secondsToHourMinFormat(time: TimeInterval) -> String {
        let formatter = DateComponentsFormatter()
        formatter.allowedUnits = [.hour, .minute]
        return formatter.string(from: time) 
    }

你的代码几乎是正确的,只是有一些遗漏。

  1. A TimeInterval 以秒为单位,你传递的是毫秒,所以你需要除以 1000
  2. 您需要将 .zeroFormattingBehaviour 设置为 .pad,这样您就不会在输出中得到零抑制
  3. 您需要以某种方式处理来自 string(from:) 的可选 return;我已经将你的功能更改为 return a String?
func secondsToHourMinFormat(time: TimeInterval) -> String? {
    let formatter = DateComponentsFormatter()
    formatter.allowedUnits = [.hour, .minute]
    formatter.zeroFormattingBehavior = .pad
    return formatter.string(from: time/1000)
}