Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum DateError: String, Error {
- case invalidDate
- }
- struct Spaceship : Codable {
- var name: String
- var createdAt: Date
- }
- let decoder = JSONDecoder()
- decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
- let container = try decoder.singleValueContainer()
- let dateStr = try container.decode(String.self)
- 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.SSSXXXXX"
- if let date = formatter.date(from: dateStr) {
- return date
- }
- formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssXXXXX"
- if let date = formatter.date(from: dateStr) {
- return date
- }
- throw DateError.invalidDate
- })
Add Comment
Please, Sign In to add comment