如何将特定格式的字符串转换为 Swift 中的日期?

How to convert a String of certain format to Date in Swift?

我有这样的字符串 2020-09-21T21:13:55.636Z...我想将它们转换成 Dates,这就是我所做的;

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)

这将使您免于尝试完全正确地获取格式字符串的麻烦。