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

标签 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
}

最佳答案

我遇到过几次这个问题,只发生在 iPhone 8 上。

要修复它,您只需要给 DateFormatter 一个语言环境,例如:

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

关于ios - 日期格式化程序不适用于某些 iOS 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49373149/

相关文章:

ios - 推送到 tabBar 时隐藏 View - swift

ios - 在 objective-c 中,您将如何扫描字符串数组以获得一组子字符串?

ios - Touch ID - 如何进入密码屏幕? - swift

arrays - 从 Swift 中的字典中的数组访问项目

swift - 将 json 编码时间转换为 nsdate

ios - iPhone NSDateFormatter转换字符串

ios - XCode5 中 UITableviewCell 的弹出 View

iphone - 如何处理 iOS 应用程序中的大量文本?

ios - 将 x 位置设置为 SKSpriteNode

objective-c - NSDateFormatter stringFromDate 一直返回 nil