DateComponentsFormatter показывает ведущий ноль - PullRequest
0 голосов
/ 24 апреля 2018

Я использую DateComponentsFormatter для форматирования TimeInterval в iOS. Если у меня результат 1:09, должен быть показан начальный ноль. Что результат выглядит так: 01:09. Возможно ли это с DateComponentsFormatter.

Вот мой пример кода:

let interval: TimeInterval = 4155

let formatter = DateComponentsFormatter()
formatter.unitsStyle = .positional
formatter.allowedUnits = [.hour, .minute]
formatter.zeroFormattingBehavior = .pad
formatter.collapsesLargestUnit = false

formatter.string(from: interval)

1 Ответ

0 голосов
/ 24 апреля 2018

Если вы хотите отформатировать интервал как время, то лучшим решением будет использовать DateFormatter:

let interval: TimeInterval = 4155
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "HH:mm"

print(formatter.string(from: Date(timeIntervalSinceReferenceDate: interval)))

Это всегда будет использовать тот же формат, всегда отображая часы.

DateComponentFormatter не дополняется нулями, поскольку предполагается, что он будет использоваться с более высокими единицами, например, вы можете получить результаты типа «300: 24», если ваш TimeInterval достаточно высок.

...