DateComponentsFormatter - 只显示被描述为分钟的小时 - 错误?

Mic*_*ień 3 ios swift nsdatecomponentsformatter

我正在使用DateComponentsFormatter这样的方法:“1 小时 30 分钟”。这是我的代码:

let formatter = DateComponentsFormatter()
formatter.unitsStyle = .short
formatter.allowedUnits = [.hour, .minute]
return formatter.string(from: 90)!
Run Code Online (Sandbox Code Playgroud)

这应该返回 1 小时 30 分钟,但我的输出是“1 分钟”。我的代码有问题还是iOS错误?

rma*_*ddy 5

DataComponentsFormatter string(from: TimeInterval)您使用的方法需要以秒为单位的时间间隔。

所以你要求格式化程序格式化 90 秒,而不是 90 分钟。

这将解决您的问题:

return formatter.string(from: 90 * 60)! // 90 minutes
Run Code Online (Sandbox Code Playgroud)

如果对此类事情有疑问,请阅读文档。文档显示了以下参数说明:

时间间隔,以秒为单位。该值必须是一个有限数。创建字符串时,负数被视为正数。