Ios DateComponents格式删除0小时但不是0分钟
我试图使用Ios DateComponents格式删除0小时但不是0分钟,ios,swift,localization,internationalization,nsdatecomponentsformatter,Ios,Swift,Localization,Internationalization,Nsdatecomponentsformatter,我试图使用datecomponentsformter将秒数格式化为时间字符串HH:MM:SS。我总是想显示分钟和秒字段,但如果小时为0,我不想显示小时。我试着设置 formatter.zeroFormattingBehavior = .dropLeading 但是,如果小时和分钟都为0,这也会导致分钟数下降 目前,我的解决方案如下: if timeElapsed >= 3600 { formatter.allowedUnits = [.second, .minute, .hour
datecomponentsformter
将秒数格式化为时间字符串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秒,则不能正常工作。有更好的解决方案吗?你的
如果听起来合理,你为什么称之为hacky?一小时是一个标准的计量单位,就像一米。一小时总是有60分钟。这一天有时有23或25个小时(即,对于使用夏令时的国家,在时钟转换日)。我觉得你的解决方案不错。免责声明:如果你想进入原子钟级别,还有一个问题。但在大多数情况下,可以忽略这一点。