DateComponentsFormatter сбрасывает ноль часов, но не ноль минут

Я пытаюсь использовать DateComponentsFormatter отформатировать количество секунд в строку времени ЧЧ: ММ: СС. Я всегда хочу показывать поля минут и секунд, но не хочу показывать часы, если часы равны 0. Я попытался установить

formatter.zeroFormattingBehavior = .dropLeading

Но это приводит к тому, что минуты также сбрасываются, если часы и минуты равны 0.

В настоящее время мое решение заключается в следующем:

if timeElapsed >= 3600 {
    formatter.allowedUnits = [.second, .minute, .hour]
} else {
    formatter.allowedUnits = [.second, .minute]
}
formatter.zeroFormattingBehavior = .pad

Тем не менее, я обеспокоен тем, что это решение очень хакерское и не будет работать правильно, если есть некоторая интернационализация, которая не считает один час 3600 секундами. Есть ли лучшее решение?

0 ответов

Другие вопросы по тегам