来自 DateFormatter 的 nil NSDate
nil NSDate from DateFormatter
我正在尝试使用此代码将 String 转换为 NSDate
let dateString = data as! String
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = formatter.date(from: dateString)
let Calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)
let unitFlags: NSCalendar.Unit = [.hour, .day, .month, .year]
let components = Calendar?.components(unitFlags, from: date!)
和 dateString
是 "2017-04-03T18:50:34.3042751+04:30"
但最后一行我得到 fatal error: unexpectedly found nil while unwrapping an Optional value
。我做错了什么?
更改您的日期格式如下
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SZ"
编辑:如果你想要更精确,你可以再添加两个 S
例如
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
S
将最多工作 3 次,之后将不再工作。如果您需要解析小数点后 3 位后的小数秒,那么您需要查看此线程:
我正在尝试使用此代码将 String 转换为 NSDate
let dateString = data as! String
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = formatter.date(from: dateString)
let Calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)
let unitFlags: NSCalendar.Unit = [.hour, .day, .month, .year]
let components = Calendar?.components(unitFlags, from: date!)
和 dateString
是 "2017-04-03T18:50:34.3042751+04:30"
但最后一行我得到 fatal error: unexpectedly found nil while unwrapping an Optional value
。我做错了什么?
更改您的日期格式如下
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SZ"
编辑:如果你想要更精确,你可以再添加两个 S
例如
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
S
将最多工作 3 次,之后将不再工作。如果您需要解析小数点后 3 位后的小数秒,那么您需要查看此线程: