【发布时间】:2017-08-24 11:02:30
【问题描述】:
我是 swift 库的新手。 我正在快速使用日历,我想在日历中显示事件。这些事件是从 Json API 获得的,但是当我比较日期时它显示错误。
这是代码
let data = event["date"] as? String
let newString = data?.replacingOccurrences(of: "/", with: "-")
self.FirstData = self.EventDates[0]
比较函数
func compareDate(date : String){
let date = date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
====>>>>Error in line
let dateFromString : NSDate = dateFormatter.date(from: date)! as NSDate
dateFormatter.dateFormat = "yyyy-MM-dd"
let datenew = dateFormatter.string(from: dateFromString as Date)
print("datee",datenew)
}
错误:致命错误:在展开可选值时意外发现 nil
如何比较日期或解决此问题。
【问题讨论】:
-
您从 api 收到日期的格式。
-
检查您在
compareDate中传递的日期。格式应为yyyy-MM-dd'T'HH:mm:ss -
为什么选择
NSDate?并且要么你的日期格式错误,要么你需要设置DateFormatter的Locale。 -
为什么要用
replacingOccurrencesOf转换字符串?DateFormatter也可以处理斜线。并且不要在 Swift 3 中使用NSDate。