我正在尝试使用DateComponentsFormatter
将数秒格式化为时间字符串HH:MM:SS。我总是希望显示分钟和秒数字段,但如果小时数为0,我不想显示小时数。我尝试设置
formatter.zeroFormattingBehavior = .dropLeading
但是,如果小时和分钟都是0,这会导致分钟被删除。
目前,我的解决方案如下:
if timeElapsed >= 3600 {
formatter.allowedUnits = [.second, .minute, .hour]
} else {
formatter.allowedUnits = [.second, .minute]
}
formatter.zeroFormattingBehavior = .pad
然而,我担心这个解决方案非常黑客,如果有一些国际化不考虑一小时是3600秒,将无法正常工作。有更好的解决方案吗?