应用程序在模拟器中崩溃而不是在用于转换日期格式的设备上
app crashes in simulator not on device for converting date format
将“2019-04-25 15:31:22”转换为日期格式时 "MMM dd yyyy, hh:mm",应用程序在模拟器中崩溃但在设备上运行正常。
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
func convertToString (dateString: String, formatIn : String, formatOut : String) -> String {
let dateFormater = DateFormatter()
dateFormater.timeZone = (NSTimeZone(abbreviation: "IST")! as TimeZone)
dateFormater.dateFormat = formatIn
let date = dateFormater.date(from: dateString)
dateFormater.timeZone = NSTimeZone.system
dateFormater.dateFormat = formatOut
let timeStr = dateFormater.string(from: date!)
return timeStr
}
timeStr 的打印说明:
expression produced error: error: Execution was interrupted, reason: Fatal error: Unexpectedly found nil while unwrapping an Optional value.
The process has been returned to the state before expression evaluation.
想明白convertToString
是正确的代码。
一个服务以"yyyy-MM-dd hh:mm:ss"
和另一个格式输出响应
服务响应日期格式为 "yyyy-MM-dd'T'HH:mm:ss'Z'"
let convertedFormat = convertToString(dateString: lastTime,
formatIn: "yyyy-MM-dd hh:mm:ss", formatOut: "MMM dd yyyy, hh:mm")
let convertedDate = convertToString(dateString: headline.publishedAt!, formatIn: "yyyy-MM-dd'T'HH:mm:ss'Z'", formatOut: "MMMM dd yyyy, hh:mm")
cell.lbl_NewsDate?.text = convertedDate
我想在 "MMM dd yyyy, hh:mm" 示例 2019 年 4 月 26 日,23:32
合成时间需要根据"Indian Standard Time"显示。
看来,您在
中使用了不正确的日期格式 "MMM dd yyyy, hh:mm"
formatIn: String, formatOut: String
小时数是 "HH",但不是 "hh"。
试试这个
func convertToString(dateString: String, formatIn: String, formatOut: String) -> String {
let dateFormater = DateFormatter()
dateFormater.timeZone = TimeZone.current
dateFormater.dateFormat = formatIn
let date = dateFormater.date(from: dateString)
dateFormater.timeZone = NSTimeZone.system
dateFormater.dateFormat = formatOut
let timeStr = dateFormater.string(from: date ?? Date())
return timeStr
}
并检查变量中的数据:date String、format、format Out 是否有正确的数据
将“2019-04-25 15:31:22”转换为日期格式时 "MMM dd yyyy, hh:mm",应用程序在模拟器中崩溃但在设备上运行正常。
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
func convertToString (dateString: String, formatIn : String, formatOut : String) -> String {
let dateFormater = DateFormatter()
dateFormater.timeZone = (NSTimeZone(abbreviation: "IST")! as TimeZone)
dateFormater.dateFormat = formatIn
let date = dateFormater.date(from: dateString)
dateFormater.timeZone = NSTimeZone.system
dateFormater.dateFormat = formatOut
let timeStr = dateFormater.string(from: date!)
return timeStr
}
timeStr 的打印说明:
expression produced error: error: Execution was interrupted, reason: Fatal error: Unexpectedly found nil while unwrapping an Optional value. The process has been returned to the state before expression evaluation.
想明白convertToString
是正确的代码。
一个服务以"yyyy-MM-dd hh:mm:ss"
和另一个格式输出响应
服务响应日期格式为 "yyyy-MM-dd'T'HH:mm:ss'Z'"
let convertedFormat = convertToString(dateString: lastTime,
formatIn: "yyyy-MM-dd hh:mm:ss", formatOut: "MMM dd yyyy, hh:mm")
let convertedDate = convertToString(dateString: headline.publishedAt!, formatIn: "yyyy-MM-dd'T'HH:mm:ss'Z'", formatOut: "MMMM dd yyyy, hh:mm")
cell.lbl_NewsDate?.text = convertedDate
我想在 "MMM dd yyyy, hh:mm" 示例 2019 年 4 月 26 日,23:32
合成时间需要根据"Indian Standard Time"显示。
看来,您在
中使用了不正确的日期格式 "MMM dd yyyy, hh:mm"formatIn: String, formatOut: String
小时数是 "HH",但不是 "hh"。
试试这个
func convertToString(dateString: String, formatIn: String, formatOut: String) -> String {
let dateFormater = DateFormatter()
dateFormater.timeZone = TimeZone.current
dateFormater.dateFormat = formatIn
let date = dateFormater.date(from: dateString)
dateFormater.timeZone = NSTimeZone.system
dateFormater.dateFormat = formatOut
let timeStr = dateFormater.string(from: date ?? Date())
return timeStr
}
并检查变量中的数据:date String、format、format Out 是否有正确的数据