Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI-日期格式化(前导零)_Swift_Date_Formatting - Fatal编程技术网

SwiftUI-日期格式化(前导零)

SwiftUI-日期格式化(前导零),swift,date,formatting,Swift,Date,Formatting,所以。。我的问题是:我需要解析以下字符串(来自请求的响应)-“PT9H”到“09.00” 到目前为止,我有以下代码: let input = "PT9H" let formatter = DateFormatter() formatter.dateFormat = "'PT'HH'H'" let date = formatter.date(from: input) let time = "\(Calend

所以。。我的问题是:我需要解析以下字符串(来自请求的响应)-“PT9H”到“09.00” 到目前为止,我有以下代码:

    let input = "PT9H"
    let formatter = DateFormatter()
    formatter.dateFormat = "'PT'HH'H'"

    let date = formatter.date(from: input)
    let time = "\(Calendar.current.component(.hour, from: date)).\(Calendar.current.component(.minute, from: date))"
    return "\(time)"

我得到的结果是:“9.0”,我需要结果中的前导零,比如:“09:00”。有什么想法吗?提前谢谢,干杯

您可以按如下方式格式化值:

let hour = Calendar.current.component(.hour, from: date)
let min = Calendar.current.component(.minute, from: date)

let time = String(format: "%02d:%02d", hour, min)
但是,这不会在不同的时区中同样有效,并且会产生问题,因为API响应不是日期而是持续时间。

“PT9H”是ISO 8601中格式化的持续时间,而不是日期。