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

DateComponentsFormatter - showing only hour described as minutes - bug?

我正在使用 DateComponentsFormatter 来实现类似的目标:“1 小时 30 分钟”。这是我的代码:

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

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

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

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

这将解决您的问题:

return formatter.string(from: 90 * 60)! // 90 minutes

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

The time interval, measured in seconds. The value must be a finite number. Negative numbers are treated as positive numbers when creating the string.