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 将日期字符串转换为日期的主要内容,如果未能解决你的问题,请参考以下文章