DateComponentsFormatter сбрасывает ноль часов, но не ноль минут
Я пытаюсь использовать DateComponentsFormatter
отформатировать количество секунд в строку времени ЧЧ: ММ: СС. Я всегда хочу показывать поля минут и секунд, но не хочу показывать часы, если часы равны 0. Я попытался установить
formatter.zeroFormattingBehavior = .dropLeading
Но это приводит к тому, что минуты также сбрасываются, если часы и минуты равны 0.
В настоящее время мое решение заключается в следующем:
if timeElapsed >= 3600 {
formatter.allowedUnits = [.second, .minute, .hour]
} else {
formatter.allowedUnits = [.second, .minute]
}
formatter.zeroFormattingBehavior = .pad
Тем не менее, я обеспокоен тем, что это решение очень хакерское и не будет работать правильно, если есть некоторая интернационализация, которая не считает один час 3600 секундами. Есть ли лучшее решение?