【问题标题】:DateFormatter returns nilDateFormatter 返回零
【发布时间】:2017-06-02 12:07:57
【问题描述】:

为什么DateFormatter 返回零? 我认为字符串格式匹配?

let dateString = ("01/05/2017")!
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "dd/MMM/yyyy"
let dateObj = dateFormatter.date(from: dateString)

执行上述代码后,dateObj为nil。

【问题讨论】:

  • 那只是表示字符串与日期格式不匹配。 – Apple 提供了一个Data Formatting Guide 链接到Date Format Patterns 文档。
  • let dateString = ("01/05/2017")! 看起来很丑。你想在那里解开什么?常规字符串中没有可选值。
  • 将您的字符串从 let dateString = ("01/05/2017")! 更改为 let dateString = "01/05/2017"
  • 嗯,这很尴尬。我只是在我的代码中有一个错字。感谢所有帮助:)

标签: swift dateformatter


【解决方案1】:

对于month,您需要使用MM,因为MMM 使用格式为JanFebMar 等格式的月份。所以你的dateFormat 应该是dd/MM/yyyy

let dateString = "01/05/2017"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
let dateObj = dateFormatter.date(from: dateString)

注意:无需将timeZone设置为TimeZone.current

【讨论】:

    【解决方案2】:

    替换为您的日期格式:

    dateFormatter.dateFormat = "dd/MM/yyyy"
    

    【讨论】:

      【解决方案3】:

      在这种情况下,日期格式化程序应该是 dateFormatter.dateFormat = "dd/MM/yyyy"。

      【讨论】:

        【解决方案4】:

        您可以从给定的链接查看各种日期格式

        NSDateFormatter

        对于给定的示例,您可以使用let formaterStrig = "dd/MM/yyyy"

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-16
          • 2021-12-24
          • 1970-01-01
          • 2018-10-13
          相关资源
          最近更新 更多