Swift将字符串日期转换为日期
Posted
技术标签:
【中文标题】Swift将字符串日期转换为日期【英文标题】:Swift convert string date to date 【发布时间】:2020-06-03 14:04:04 【问题描述】:我有这个字符串“2020 年 4 月 13 日 7:53:01 PM”,我想转换为日期。我用过这个,但它崩溃了
let input = "Apr 13, 2020 7:53:01 PM"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "it_IT")
dateFormatter.dateFormat = "MMM dd YYYY HH:mm:ss"
let date = dateFormatter.date(from:input)!
转换此字符串的正确日期格式如何?谢谢
【问题讨论】:
dateFormatter.dateFormat = "MMM-dd-YYYY'T'HH:mm:ss a"
你认为你在那一行写了什么? dateFormat
的目的是什么?一旦你理解了这一点,你的代码有什么问题可能会更清楚。另外,我希望您理解它崩溃是因为dateFormatter.date(from:input)
为零,并且强制解包(在其上使用!
)导致崩溃是您理解的。以及控制台中抛出的错误。
我想转换 Date 对象中的字符串,因为我有很多对象要按日期排序。我说它崩溃是因为它是 nil,但它是 nil 因为 dateFormat 不正确
所以你似乎明白你的日期格式是错误的?您是否尝试理解您在上面写的内容?它与输入的格式不匹配。只需将一个写在另一个上面,您就会看到。
我说了,但我尝试了很多格式化日期。我在 NSDateFormatter.com 中看到,但它不起作用......我也尝试了 "MMM dd, yyyy HH:mm:ss a" 但没有
你之前没有说过你做了一些尝试。您提供的最后一个日期格式更有意义。 HH
?那是24小时格式。如有疑问,请执行相反的操作:let stringified = dateFormatter.string(from: Date())
并查看它是否正确。还有Apr
,是只有英文而不是它吗?此处的语言环境可能会导致问题。
【参考方案1】:
将日期格式更改为此
dateFormatter.dateFormat = "MMM dd, yyyy hh:mm:ss a"
【讨论】:
还在崩溃?预输入日期对我来说是可行的。以上是关于Swift将字符串日期转换为日期的主要内容,如果未能解决你的问题,请参考以下文章