日期格式化程序不适用于某些iOS设备

时间:2018-03-19 22:06:52

标签: ios swift nsdateformatter

我的程序出现问题,它在某些特定设备上崩溃。在尝试将字符串转换为日期时,我设法将问题跟踪到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
}

1 个答案:

答案 0 :(得分:1)

仅在iPhone 8上,我就遇到过几次这个问题。

要解决此问题,您只需要为DateFormatter提供一个语言环境,例如:

dateFormatterPrint.locale = Locale(identifier: "en_US_POSIX")