Swift 将日期字符串转换为日期

Posted

技术标签:

【中文标题】Swift 将日期字符串转换为日期【英文标题】:Swift Convert date string to Date 【发布时间】:2019-05-29 06:27:27 【问题描述】:

我从服务器端得到一个日期字符串,即Tue, 28 May 2019 13:24:06 +0000。我尝试执行以下操作:

let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .full
let date = dateFormatter.date(from: "Tue, 28 May 2019 13:24:06 +0000")

结果是nil

如何将这样的字符串转换为Date

【问题讨论】:

您可能需要指定自定义日期/时间格式 您可能还想查看nsdateformatter.com 以供参考 【参考方案1】:

您需要设置一个特定的dateFormat。这样做时,请将日期格式化程序的语言环境设置为 en_US_POSIX

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"
let date = dateFormatter.date(from: "Tue, 28 May 2019 13:24:06 +0000")

请参阅dateFormat 的文档以获取完整描述所有格式说明符含义的链接。

请记住,将日期转换为字符串以显示给用户时,使用日期和时间样式是最佳解决方案。但要将字符串解析为日期,请使用dateFormat

【讨论】:

它有效,即使没有指定local。谢谢。是否有任何通用方法来解析任何类型的日期字符串?假设用户添加了一个新的 rss 提要,我无法提前知道这个新提要中日期字符串的类型 你需要指定这个特殊的语言环境,否则你的代码对很多用户来说会失败,特别是如果他们的设备设置为非英语语言。 查看NSDataDetector 作为处理未知日期格式字符串的一种可能方式。 好的。我将研究NSDataDetector ,并在我的代码中指定语言环境。再次感谢!

以上是关于Swift 将日期字符串转换为日期的主要内容,如果未能解决你的问题,请参考以下文章

swift 将日期字符串转换为swift中的日期。

Swift 将日期字符串转换为日期

Swift - 将字符串转换为在正确日期前一天返回的日期[重复]

Swift - 将字符串转换为日期

swift 将时间戳转换为字符串日期

iOS Swift:当字符串包含时区缩写时,如何将特定的日期字符串格式转换为日期对象?