DateComponentsFormatter - показывает только час, описанный как минуты - ошибка?
Я использую DateComponentsFormatter
чтобы добиться чего-то такого: "1 час 30 минут". Это мой код для этого:
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .short
formatter.allowedUnits = [.hour, .minute]
return formatter.string(from: 90)!
Это должно вернуть 1 час и 30 минут, но мой вывод "1 минута". Что-то не так с моим кодом или это ошибка iOS?
1 ответ
Решение
DataComponentsFormatter string(from: TimeInterval)
метод, который вы используете, ожидает интервал времени в секундах.
Итак, вы просите форматировщик отформатировать 90 секунд, а не 90 минут.
Это решит вашу проблему:
return formatter.string(from: 90 * 60)! // 90 minutes
Если вы сомневаетесь в таких вещах, прочитайте документацию. Документация показывает следующее для описания параметра:
Интервал времени, измеренный в секундах. Значение должно быть конечным числом. Отрицательные числа обрабатываются как положительные числа при создании строки.