DateComponentsFormatter下降零小时但不是零分钟
我正在尝试使用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
但是,我担心这个解决方案是非常hacky,如果有一些国际化不考虑一小时是3600秒,将无法正常工作。 有更好的解决方案吗?