我的程序出现问题,它在某些特定设备上崩溃。在尝试将字符串转换为日期时,我已经设法将问题跟踪到 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
}
最佳答案
我遇到过几次这个问题,只发生在 iPhone 8 上。
要修复它,您只需要给 DateFormatter
一个语言环境,例如:
dateFormatterPrint.locale = Locale(identifier: "en_US_POSIX")
关于ios - 日期格式化程序不适用于某些 iOS 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49373149/