You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中JSON字符串转时间及相关技术问题咨询

解决JSON时间字符串转Date的问题

我来帮你搞定这个时间转换的坑~你现在的问题核心是DateFormatter的格式和你拿到的时间字符串不匹配,所以才转不出来。

先看你的情况:JSON里的data字段是"15:55",只有小时和分钟;但你代码里用的dateFormat是"yyyy-MM-dd'T'HH:mm:ss"——这个格式是给带年月日+时分秒的字符串用的,和"15:55"完全对不上,所以解析肯定失败。

修正后的代码示例

先给你最直接的解决方案,适配"15:55"这种纯时分格式:

if let timeString = json["data"] as? String {
    print("on Click of in_time Button : \(timeString)")
    
    let formatter = DateFormatter()
    // 重点:把格式改成和输入字符串一致的"HH:mm"
    formatter.dateFormat = "HH:mm"
    // 可选但建议:设置时区,避免跨时区的时间偏移
    formatter.timeZone = TimeZone.current
    
    // 解析成Date对象
    if let convertedDate = formatter.date(from: timeString) {
        print("转换成功的Date对象: \(convertedDate)")
        
        // 如果需要转换成带日期的格式展示(比如给用户看)
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        let fullTimeString = formatter.string(from: convertedDate)
        print("格式化后的完整时间: \(fullTimeString)")
    } else {
        print("时间解析失败,请检查格式是否匹配")
    }
}

额外说明

  1. 关于Date对象的特性:iOS/macOS里的Date是绝对时间(包含日期+时间),如果你只给时分字符串,DateFormatter会自动用当前系统日期来补全日期部分。如果需要指定特定日期(比如业务里的打卡日期),可以用Calendar和DateComponents来拼接:
if let timeString = json["data"] as? String {
    let timeFormatter = DateFormatter()
    timeFormatter.dateFormat = "HH:mm"
    timeFormatter.timeZone = TimeZone.current
    
    if let timeDate = timeFormatter.date(from: timeString) {
        // 提取时间的小时、分钟组件
        let timeComponents = Calendar.current.dateComponents([.hour, .minute], from: timeDate)
        
        // 指定你需要的日期(比如2024年5月20日)
        let targetDateComponents = DateComponents(
            year: 2024,
            month: 5,
            day: 20,
            hour: timeComponents.hour,
            minute: timeComponents.minute
        )
        
        if let targetDate = Calendar.current.date(from: targetDateComponents) {
            print("指定日期的完整时间: \(targetDate)")
        }
    }
}
  1. 时区问题:一定要记得设置timeZone,不然默认可能用UTC时区,导致你解析出来的时间和预期有偏差(比如国内会差8小时)。

内容的提问来源于stack exchange,提问作者Sandesh Zote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:30:01