首页 > 解决方案 > SwiftUI - 日期格式(前导零)

问题描述

所以..我的问题是:我需要解析以下字符串(来自请求的响应)-“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”。有任何想法吗?提前感谢,干杯!

标签: swiftdateformatting

解决方案


您可以像这样以某种方式格式化值:

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 响应不是日期而是持续时间。


推荐阅读