为什么我到达下面的df.date()
行,应用程序崩溃了:
致命错误:在解包可选值时意外发现nil
我也看到了这一点:
错误:执行被中断,原因:EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP,subcode = 0x0)
let mydate = "2016-12-27"
let df = DateFormatter()
df.dateFormat = "MM/dd/yyyy"
newDate = df.date(from: mydate)
我做错了什么?
答案 0 :(得分:3)
您的代码是否甚至编译,因为此行df = "MM/dd/yyyy"
将为您提供编译错误,df.date(from:)
返回可选Date?
实例,因此如果您的dateFormat
和字符串日期可能为零不匹配。现在您的日期格式为yyyy-MM-dd
。所以改变这样的代码。
let mydate = "2016-12-27"
let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd"
if let date = df.date(from: mydate) {
df.dateFormat = "MM/dd/yyyy"
let formattedDate = df.string(from: date)
print(formattedDate)
}
答案 1 :(得分:0)
我认为你打算这样做
df.dateFormat = "yyyy-MM-dd"
告诉DateFormatter
对象解析传入的String对象。