我有一个以毫秒为单位的值,我想以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)
}
您的代码几乎是对的,只是有几个遗漏。
TimeInterval
是以秒为单位的,如果你经过毫秒,那么你需要除以1000- 您需要将
.zeroFormattingBehaviour
设置为.pad
,这样您的输出中就不会出现零抑制 - 您需要以某种方式处理来自
string(from:)
的可选返回;我已更改您的函数以返回String?
func secondsToHourMinFormat(time: TimeInterval) -> String? {
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute]
formatter.zeroFormattingBehavior = .pad
return formatter.string(from: time/1000)
}