swift - 如何正确地将日期转换为 NSDate?(在展开 Optional 值时意外发现 nil)
问题描述
我正在从远程配置(字符串)中提取比赛结束日期,并尝试将其转换为 NSDate 以在计时器中使用。
let contestEndDateFormatter = DateFormatter()
contestEndDateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
contestEndDate = contestEndDateFormatter.date(from: contestEndDateFromRemoteConfig)! as NSDate
如图所示,字符串“2019-05-29 23:59:59”肯定在变量“contestEndDateFromRemoteConfig”中(所以远程配置不是问题);但是,我显然做错了,因为它抛出错误“在展开可选值时意外发现 nil”。
我相信 dateFormat 是正确的并且与字符串匹配(这是类似 stackoverflow 问题的建议),所以这也不应该是问题。
谁能明白为什么这会引发错误?
提前感谢任何方向!
解决方案
尝试这个:
var date = "2019-05-29 23:59:59"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00")
let formattedDate = dateFormatter.date(from: date)
if let formattedDate = formattedDate {
print(formattedDate)
}