问题描述
我有类似2020-09-21T21:13:55.636Z
这样的字符串...我想将它们转换成Date
s,这就是我要做的;
func convertToDate(str: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
return dateFormatter.date(from: str)!
}
以上代码在解包时崩溃。我猜是因为格式...知道我在做什么错吗?
解决方法
对于该日期字符串,应使用ISO8601DateFormatter
,如下所示:
var str = "2020-09-21T21:13:55.636Z"
let formatter = ISO8601DateFormatter()
formatter.formatOptions = [.withInternetDateTime,.withFractionalSeconds]
let date = formatter.date(from: str)
这将为您节省尝试获取正确正确的格式字符串的麻烦。