我的应用程序使用了一个定时器,该定时器使用mm-dd-yyyy h:mma
格式的字符串构造。当用户超过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:00am
03-14-2021 3:00 AM
03-15-2021 2:00 AM
我对这次撞车很困惑,以为会寻求一些援助;感谢任何帮助!
在您的区域设置中,夏令时会在2021年3月14日凌晨2点更改,因此特定日期不存在。