Swift5-无法解释的DateFormatter崩溃
我的应用程序使用一个计时器,该计时器使用MM-dd-yyyy h:mm a格式中的字符串构造。当用户超过由 resetTimeString 指定的时间时,下一次重置时间是通过递增到第二天('a' 值不变)并将该值存储在数据库中来确定的。简而言之,它代表一个每日计时器,每个用户都可以选择自己的“a”值。
我有一些用户的伸手就崩溃,并且在数据库中比较它们的值之后,他们似乎都有一个resetTimeString的03-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 点更改,因此特定日期不存在。