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

Swift调用API出现dateCorrupted错误,重启APP后问题消失

日期格式引发API响应持续触发dateCorrupted错误的问题

问题现象

  • 每次调用API均能收到响应,但始终触发dateCorrupted错误
  • 切换标签页重新请求数据仍会报错,仅重启APP可解决问题

背景与补全代码

后端要求的日期格式为"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"(UTC时区),但日期时间选择器生成的日期始终缺失毫秒部分,因此编写了以下Date扩展来补全毫秒:

var postableDate: String {
    let formatter = DateFormatterPool.backendDateFormatter
    formatter.timeZone = TimeZone(identifier: "UTC")
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"

    let millisecondsString = formatter.string(from: self)

    let nanoseconds = DispatchTime.now().uptimeNanoseconds % 1_000_000
    let nanosecondsString = String(format: ".%03d", nanoseconds)

    return millisecondsString + ".001" + "Z"
}

相关模型与请求代码

数据模型

struct Model: Codable {
...
    var departureTime: Date
...
}

请求实现

func getRequest(with requestID: String) async throws -> BaseResponseData<Model> {
    try await requestFactory.request(
        with: ApiRouter.getRequest(requestID: requestID),
        customDecoder: DateDecoder())
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 05:25:07