今天,一个非常奇怪的错误(或者我相信)开始发生。这是一段代码:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let dateObj = dateFormatter.dateFromString(serviceDate)
dateFormatter.dateFormat = "dd/MM/yyyy"
let serviceDateBr = dateFormatter.stringFromDate(dateObj!)
现在出现了奇怪的部分。例如,当我设置serviceDate =“2016-10-15”时,它可以工作:
let serviceDate = "2016-10-15"
...
print("dateSQL: \(serviceDate), dateBR: \(serviceDateBr)")
--------
Answer = dateSQL: 2016-10-15, dateBR: 15/10/2016
另一方面,当我将serviceDate更改为“2016-10-16”时,它崩溃了。不是在第17天,第18天或任何其他。只有16岁。
let serviceDate = "2016-10-16"
...
print("dateSQL: \(serviceDate), dateBR: \(serviceDateBr)")
--------
Answer = fatal error: unexpectedly found nil while unwrapping an Optional value
我已经知道,当第一个格式化失败时,会发生这个致命错误,返回nil,然后我尝试强制将其解包到stringFromDate()上。但我不明白为什么它首先失败了。任何人都可以帮助我吗?
如果相关,我使用的是Xcode 7.3.1。这个错误发生在设备和模拟器上。
非常感谢。
答案 0 :(得分:2)
我想你住在巴西。
2016年10月16日,夏令时发生变化,没有0:00。
答案 1 :(得分:0)
我试过Xcode 7.3,看起来工作正常,结果
dateSQL: 2016-10-15, dateBR: 15/10/2016
云你提供了更多信息吗?