Swift 为什么我的DateFormatter.date(from:String)会返回nil
已使用此函数将字符串转换为日期对象。Swift 为什么我的DateFormatter.date(from:String)会返回nil,swift,date,nsdate,nsdateformatter,Swift,Date,Nsdate,Nsdateformatter,已使用此函数将字符串转换为日期对象。 类似的Qs上,所以,但无法找到一个处理我的情况下,只是时间。所以我相信这篇文章不是重复的 func convertTimeStringToDate() -> Date { //time will be "04:48" let dateFormatter = DateFormatter() dateFormatter.dateFormat = "HH:
类似的Qs上,所以,但无法找到一个处理我的情况下,只是时间。所以我相信这篇文章不是重复的
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,因此在其展开时崩溃!。我看不出代码有什么问题 您的方法应该是这样的<代码>日期样式和时间样式再次更改格式
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")!
}
然而,有趣的是,最后的日期格式被认为是有效的。因此,如果您将格式设置为相反的顺序,它将工作
另外,我只见过用于输出格式的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")!
}
然而,有趣的是,最后的日期格式被认为是有效的。因此,如果您将格式设置为相反的顺序,它将工作
另外,我只见过用于输出格式的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")!
}
请不要设置日期样式和时间样式
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")!
}
这样一个功能的目的是什么?您可以通过DateComponents以更可靠的方式创建有效的日期。您已经将dateFormat指定为“HH:mm”,它对您的输入有效。那么,为什么要再次指定更改格式的
dateStyle
和timeStyle
?这就是它崩溃的原因,就是这样。我在工作的时候已经使用这个功能好几个月了。我猜最新的beta版阻止了我逃脱惩罚。请回答这个问题,我接受这样一个功能的目的是什么?您可以通过DateComponents以更可靠的方式创建有效的日期。您已经将dateFormat指定为“HH:mm”,它对您的输入有效。那么,为什么要再次指定更改格式的dateStyle
和timeStyle
?这就是它崩溃的原因,就是这样。我在工作的时候已经使用这个功能好几个月了。我猜最新的beta版阻止了我逃脱惩罚。请将此作为答案,我接受欢迎来到Stackoverflow,并感谢您的贡献。但是,问题已经得到了回答,您的观点已经提出。欢迎来到Stackoverflow,并感谢您的贡献。然而,问题已经得到了回答,你的观点已经提出。