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

iOS Swift中如何将指定格式日期转换为YYYY-MM-DD格式

在iOS Swift中将特定格式日期转换为YYYY-MM-DD的实现方法

嘿,这个问题我之前做项目的时候刚好碰到过,给你分享一个靠谱的实现方案,步骤很清晰:

首先你得搞清楚输入日期字符串的格式,你拿到的是Tue Aug 27 2019 07:01:59 GMT+0530 (India Standard Time),对应的格式模板是EEE MMM dd yyyy HH:mm:ss zzzz。这里有个关键细节:一定要设置locale为en_US_POSIX,不然如果你的设备是其他语言环境,日期解析很可能失败。

接下来直接上完整代码,你可以直接复制用:

func convertToYYYYMMDD(from dateString: String) -> String? {
    // 1. 创建输入日期格式化器
    let inputFormatter = DateFormatter()
    inputFormatter.locale = Locale(identifier: "en_US_POSIX")
    inputFormatter.dateFormat = "EEE MMM dd yyyy HH:mm:ss zzzz"
    
    // 2. 解析输入字符串为Date对象
    guard let date = inputFormatter.date(from: dateString) else {
        print("日期解析失败,请检查输入格式")
        return nil
    }
    
    // 3. 创建输出日期格式化器,设置目标格式
    let outputFormatter = DateFormatter()
    outputFormatter.dateFormat = "yyyy-MM-dd"
    
    // 4. 转换为目标格式字符串
    return outputFormatter.string(from: date)
}

// 调用示例
let originalDateString = "Tue Aug 27 2019 07:01:59 GMT+0530 (India Standard Time)"
if let formattedDate = convertToYYYYMMDD(from: originalDateString) {
    print(formattedDate) // 输出:2019-08-27
}

另外补充几个小提示:

  • 如果你的输入日期字符串的时区部分格式偶尔有变化,可以试试调整dateFormat里的时区占位符,比如用Z或者ZZZZ,不过针对你给出的格式,zzzz是完全匹配的。
  • 记得处理解析失败的情况(比如输入字符串格式不对),上面的代码用了guard let来做安全校验,避免崩溃。

内容的提问来源于stack exchange,提问作者raja-sekhar-p

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:08:17