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

Swift中DateTime2格式字符串转Date返回nil问题排查

问题解决:Swift中SQL Server DateTime2格式转Date对象返回nil的问题

你的代码存在几个关键错误,导致日期解析始终失败:

  1. 日期格式符误用

    • YYYY 代表的是基于周的周年,而非常规公历年,应替换为 yyyy
    • DD 表示的是年中的第几天,不是月份内的日期,需改为 dd
    • 毫秒部分格式错误:[nnnnnnn] 不符合DateFormatter规则,7位小数的毫秒应该用 SSSSSSS(每个S对应一位毫秒数,最多支持7位)
  2. 未指定固定Locale
    DateFormatter的解析行为会受系统地区设置影响,必须指定en_US_POSIX这个Locale,避免因地区格式差异导致解析失败。

修正后的代码如下:

private func stringToDate(dateString: String) -> Date? {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSS"
    formatter.locale = Locale(identifier: "en_US_POSIX")
    return formatter.date(from: dateString)
}

传入示例字符串"2022-08-16T13:44:11.8743234"即可正常解析出Date对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:42:24