Swift 5 - 无法解释的 DateFormatter 崩溃
Swift 5 - Unexplainable DateFormatter Crash
我的应用程序使用了一个计时器,该计时器是使用 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 点更改,因此特定日期不存在。
我的应用程序使用了一个计时器,该计时器是使用 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 点更改,因此特定日期不存在。