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

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

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

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

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

Swift - 将字符串转换为日期

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