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



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

示例:

  • 我的输入为0,输出应为00:00
  • 如果输入是3600000,我需要的输出是01:00

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


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

您的代码几乎是对的,只是有几个遗漏。

  1. TimeInterval是以秒为单位的,如果你经过毫秒,那么你需要除以1000
  2. 您需要将.zeroFormattingBehaviour设置为.pad,这样您的输出中就不会出现零抑制
  3. 您需要以某种方式处理来自string(from:)的可选返回;我已更改您的函数以返回String?
func secondsToHourMinFormat(time: TimeInterval) -> String? {
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute]
formatter.zeroFormattingBehavior = .pad
return formatter.string(from: time/1000)
}

相关内容

  • 没有找到相关文章

最新更新