【发布时间】:2017-09-13 00:22:25
【问题描述】:
当我到达下面的 df.date() 行时,当使用这种格式 2016-12-27 14:40:46 +0000 的日期时,应用程序会崩溃:
致命错误:在展开可选值时意外发现 nil
我也看到了这个:
错误:执行被中断,原因:EXC_BAD_INSTRUCTION (代码=EXC_I386_INVOP,子代码=0x0)
我有可以采用这种格式的字符串
12/27/2016
但有时是这种格式
2016-12-27 14:40:46 +0000
这是在上述格式下崩溃的代码sn-p:
let mydate = "12/27/2016" //this works but not the longer format
let df = DateFormatter()
df.dateFormat = "MM/dd/yyyy" //this is the format I want both dates to be in
newDate:Date = df.date(from: mydate)
我如何使用基本上一个函数来处理这两种格式?
【问题讨论】:
-
data(from:)返回一个可选项,您可以 try 使用第一个格式化程序从字符串中获取Date,如果返回 nil,请尝试其他格式化程序。最后一行没有编译,我怀疑它会崩溃,没有强制解包 -
使用两种格式化程序,尝试一种然后另一种。