我的程序出现问题,它在某些特定设备上崩溃。在尝试将字符串转换为日期时,我设法将问题跟踪到dateFormatter为nil。但这只是一些设备。
我的问题是,这怎么可能,我的日期格式是否存在问题?
func checkIfActive(start: String, end: String) -> Bool
{
let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMMM dd,yyyy hh:mma"
let dateStart = dateFormatterPrint.date(from: start)
let dateEnd = dateFormatterPrint.date(from: end)
print("start time string\(start)") // This print March 19,2018 08:33PM
print("start date\(dateStart)") // This is nil some devices, however works fine on others
if(Date().isBetween(date: dateStart!, andDate: dateEnd!))
{
return true
}
return false
}
答案 0 :(得分:1)
仅在iPhone 8上,我就遇到过几次这个问题。
要解决此问题,您只需要为DateFormatter
提供一个语言环境,例如:
dateFormatterPrint.locale = Locale(identifier: "en_US_POSIX")