在将“ 2019-04-25 15:31:22”转换为日期格式“ MMM dd yyyy,hh:mm”时,应用在模拟器中崩溃,但在设备上正常运行。
线程1:致命错误:在展开可选值时意外发现nil
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的打印描述:
表达式产生错误:错误:执行被中断,原因:致命错误:展开一个Optional值时,意外地发现nil。 该过程已返回到表达式求值之前的状态。
想了解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
结果时间需要根据“印度标准时间”显示。
答案 0 :(得分:0)
似乎您在以下位置使用了错误的日期格式“ MMM dd yyyy,hh:mm”
formatIn: String, formatOut: String
小时是“ HH”,而不是“ hh”。
答案 1 :(得分:-1)
尝试
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
}
并检查变量中的数据:dateString,formatIn,formatOut是否具有正确的数据