提问者:小点点

Swift 5-无法解释的DateFormatter崩溃


我的应用程序使用了一个定时器,该定时器使用mm-dd-yyyy h:mma格式的字符串构造。当用户超过resetTimeString记录的时间时,下一个重置时间将通过递增到下一天(“a”值不变)并将该值存储在数据库中来确定。简单地说,它代表一个每日计时器,每个用户都可以选择他们自己的'a'值。

我让许多用户联系了一次崩溃,在比较了数据库中的值之后,他们似乎都有resettimestring03-14-2021 2:00 am

    var resetTime: Date?
    let resetTimeFormatter = DateFormatter()

    resetTimeFormatter.dateFormat = "MM-dd-yyyy h:mm a"
    
    if let resetString = resetTimeString { //value in DB
        resetTime = resetTimeFormatter.date(from: resetString)! // <- Only crashes with 03-14-2021 2:00 AM 
    }

我测试了ResetTimeString值的一系列不同值,它们都工作得非常好:

03-13-2021 2:00 AM

03-14-2021 1:00am

03-14-2021 3:00 AM

03-15-2021 2:00 AM

我对这次撞车很困惑,以为会寻求一些援助;感谢任何帮助!


共1个答案

匿名用户

在您的区域设置中,夏令时会在2021年3月14日凌晨2点更改,因此特定日期不存在。