使用此功能将字符串转换为日期对象。
关于SO的类似问题,但是找不到适合我的情况的问题。所以我相信这篇文章不是重复的。
func convertTimeStringToDate() -> Date {
//time will be "04:48"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
dateFormatter.dateStyle = .none
dateFormatter.timeStyle = .short
dateFormatter.locale = Locale.current
return dateFormatter.date(from: "04:48")!
}
该函数返回nil,因此当其解包时会崩溃!我看不到代码有什么问题。
答案 0 :(得分:2)
这是您的方法应采用的方式。 dateStyle
和timeStyle
再次更改格式。
func convertTimeStringToDate() -> Date {
//time will be "04:48"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
dateFormatter.locale = Locale.current
return dateFormatter.date(from: "04:48")!
}
但是,有趣的是,最后一个日期格式被认为是有效的。因此,如果您以相反的顺序设置格式,则可以使用!
PS-我只看到dateStyle
和timeStyle
用于输出格式化。
注意::如果您输入的格式可能会发生变化,则应安全地打开日期包装,并使用默认日期或其他适当的日期,以免崩溃您的应用。 / p>
答案 1 :(得分:1)
请不要设置dateStyle和timeStyle。
func convertTimeStringToDate() -> Date {
//time will be "04:48"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
dateFormatter.locale = Locale.current
return dateFormatter.date(from: "04:48")!
}