Swift5-无法解释的DateFormatter崩溃

我的应用程序使用一个计时器,该计时器使用MM-dd-yyyy h:mm a格式中的字符串构造。当用户超过由 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:00 AM

03-14-2021 3:00 AM

03-15-2021 2:00 AM

我对这次崩溃感到非常困惑,并认为我会寻求一些帮助;任何帮助表示赞赏

回答

在您的语言环境中,夏令时在 2021 年 3 月 14 日凌晨 2 点更改,因此特定日期不存在。


以上是Swift5-无法解释的DateFormatter崩溃的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>