我希望将12小时的时间转换为24小时。但是当我的设备当前时间是12小时时,它会给我一个错误:
致命错误:在解包可选值时意外发现nil
当我的设备当前时间为24小时后,它会给我正确的输出。
我使用了以下代码:
func getTimeFromString(timeString : String)-> NSDate
{
let formatter = NSDateFormatter();
formatter.dateFormat = "HH:mm"
let date = formatter.dateFromString(timeString)//here timeString is "06:45 am"
return date!
}
我的问题是,当设备当前时间是12小时合成时,它无法将12小时转换为24小时?
请建议我任何想法,代码,参考。 在此先感谢!!
答案 0 :(得分:0)
您提供的输入字符串与您指定的日期格式不匹配。
对您的功能进行一些更改
NSDate
(当格式无法识别时)hh:mma
喜欢这个
func dateFromString(timeString: String)-> NSDate? {
let formatter = NSDateFormatter()
formatter.dateFormat = "hh:mma"
return formatter.dateFromString(timeString)
}
现在你可以使用它了
dateFromString("10:15am") // "Jan 1, 2000, 12:15 AM"
dateFromString("10:15pm") // "Jan 1, 2000, 12:15 PM"
dateFromString("NOT A DATE") // nil