如何使用ISO8601DateFormatter将字符串转换为日期?
let iSO8601DateFormatter = ISO8601DateFormatter()
let string = iSO8601DateFormatter.string(from: Date()) //2019-12-04T08:23:27Z
let date = iSO8601DateFormatter.date(from: string) //nil ?上面的代码使用Xcode11.2.1在iPhone8模拟器中运行,我得到的结果是空的。
但它在同一个Xcode的Playground中工作。
有谁能帮我指出我的所作所为出了什么问题吗?
发布于 2019-12-08 10:31:40
这似乎是Xcode11和swift 5中的一个错误。日期实际上不是零,但在调试中,它显示为零。
let date = Date()
let formatter = ISO8601DateFormatter()
formatter.formatOptions = [.withInternetDateTime]
let dateString = formatter.string(from: date)
if let myDate = formatter.date(from: dateString){
print(myDate) //2019-12-08 02:22:26 +0000
}你可以在SO post上看到更多关于这个bug的信息
发布于 2019-12-04 18:27:32
您可以向NSDateFormatter指定iSO8601日期格式以获取日期:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd'T'HHmmssZ"
let date = dateFormatter.date(from: dateString)
print(date) //2019-12-04 12:46:00 +0000您可以在here.上检查日期格式的类型
我希望这能对你有所帮助。
https://stackoverflow.com/questions/59171939
复制相似问题