【问题标题】:Swift convert string date to dateSwift将字符串日期转换为日期
【发布时间】: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,是只有英文而不是它吗?此处的语言环境可能会导致问题。

标签: swift dateformatter


【解决方案1】:

将日期格式更改为此

dateFormatter.dateFormat = "MMM dd, yyyy hh:mm:ss a"

【讨论】:

  • 还在崩溃?预输入日期对我来说是可行的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多