Преобразование строки в сек мин и час - PullRequest
0 голосов
/ 14 сентября 2018

у меня есть строка времени

 duration = "00:01:28"

я хочу показать как 28 сек, 1 мин.как получить отдельный компонент в виде секунд, минут и часов.

 let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "HH:mm:ss"
        let date = dateFormatter.date(from:duration)
        let calendar = Calendar.current
        let comp = calendar.dateComponents([.hour, .minute], from: date!)
        let hour = comp.hour
        let minute = comp.minute
        let sec = comp.second
        print(sec)
        print(minute)

Я пробовал этот код, но я получил ноль в операторе печати. ​​

1 Ответ

0 голосов
/ 14 сентября 2018

Почти. Конечно, sec печатает nil, потому что вы не указали компонент second.

Для печати запрошенного формата строки я рекомендую DateComponentsFormatter

let duration = "00:01:28"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm:ss"
let date = dateFormatter.date(from:duration)
let components = Calendar.current.dateComponents([.hour, .minute, .second], from: date!)
let componentsFormatter = DateComponentsFormatter()
componentsFormatter.allowedUnits = [.hour, .minute, .second]
componentsFormatter.unitsStyle = .short
componentsFormatter.string(from: components) // "1 min, 28 secs"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...