为什么我的 DateFormatter .date(from: String) return nil
Why would my DateFormatter .date(from: String) return nil
一直在使用此函数将字符串转换为日期对象。
SO 上的类似问题,但是找不到可以处理我当时的情况的问题。所以这个 post 我相信不是重复的。
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")!
}
函数 returns nil 在展开时崩溃了!。我看不出代码有什么问题。
你的方法应该是这样的。 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")!
}
但是,值得注意的是最后日期格式被认为是有效的。所以,如果您将格式设置为相反的顺序,它就会起作用!
P.S - 我只看到 dateStyle
和 timeStyle
用于输出格式。
注意:如果您输入的格式有可能发生变化,那么您应该安全地解开日期并设置默认日期或其他内容,这样它就不会让您的应用崩溃。
请不要设置 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")!
}
一直在使用此函数将字符串转换为日期对象。
SO 上的类似问题,但是找不到可以处理我当时的情况的问题。所以这个 post 我相信不是重复的。
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")!
}
函数 returns nil 在展开时崩溃了!。我看不出代码有什么问题。
你的方法应该是这样的。 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")!
}
但是,值得注意的是最后日期格式被认为是有效的。所以,如果您将格式设置为相反的顺序,它就会起作用!
P.S - 我只看到 dateStyle
和 timeStyle
用于输出格式。
注意:如果您输入的格式有可能发生变化,那么您应该安全地解开日期并设置默认日期或其他内容,这样它就不会让您的应用崩溃。
请不要设置 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")!
}