我正在解析通过JSON发送的一些日期,直到今天为止,它一直运行良好。我正在使用此answer中的代码:
extension Formatter {
static let iso8601: DateFormatter = {
let formatter = DateFormatter()
formatter.calendar = Calendar(identifier: .iso8601)
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
return formatter
}()
}
extension String {
var dateFromISO8601: Date? {
let date = Formatter.iso8601.date(from: self)
return date
}
}
...
let date = crossingTime.dateFromISO8601!
...
查看正在发送并分配给crossingTime的日期,导致日期为零的日期为“ 2018-08-27T16:00:09Z”。但是,另一个效果很好的是“ 2018-08-23T13:59:54.447Z”
查看日期时,其明确的日期具有毫秒,而失败的日期则没有。是否可以同时支持两种日期格式?