目前我正在使用此代码将时间从String
转换为Date
:
public static func dateFromTime(_ time: String) -> Date {
let formatter = DateFormatter()
formatter.dateFormat = "k:mm"
formatter.locale = NSLocale.current
return formatter.date(from: time)!
}
这适用于我的设备,但它在模拟器上崩溃。他们都使用我能看到的12小时格式。
此方法崩溃时收到的字符串是"5:30 AM"
。
此代码可能在模拟器而非设备上崩溃的任何其他原因?
答案 0 :(得分:1)
24小时格式的小k&资本K为12小时(上午/下午)。如果您希望12小时格式化时间,那么您应该使用大写K来格式化。 link here
希望它有所帮助。
答案 1 :(得分:1)
由于日期格式正确,您的代码崩溃了!
对于,"5:30 AM"
使用"h:mm a"
,而不是"k:mm"
。
为避免任何类型的崩溃,请更新您的代码,如下所示。
public static func dateFromTime(_ time: String) -> Date {
let formatter = DateFormatter()
formatter.dateFormat = "h:mm a"
formatter.locale = NSLocale.current
if let date = formatter.date(from: time)
{
return date
}
print("Invalid arguments ! Returning Current Date . ")
return Date()
}