Swift 将字符串转换为秒、分钟和小时

Swift 将字符串转换为秒、分钟和小时,swift,time,Swift,Time,我有时间线 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

我有时间线

 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)

我尝试了这个代码,但在打印语句中得到了零。

几乎。当然,
sec
打印
nil
,因为您没有指定
second
组件

要打印请求的字符串格式,我建议使用
datecomponentsformter

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"