DateFormatter 返回零
Posted
技术标签:
【中文标题】DateFormatter 返回零【英文标题】:DateFormatter returns nil 【发布时间】: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"
嗯,这很尴尬。我只是在我的代码中有一个错字。感谢所有帮助:)
【参考方案1】:
对于month
,您需要使用MM
,因为MMM
使用格式为Jan
、Feb
、Mar
等格式的月份。所以你的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"
【讨论】:
以上是关于DateFormatter 返回零的主要内容,如果未能解决你的问题,请参考以下文章