Guest User

Untitled

a guest
Apr 19th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. enum DateError: String, Error {
  2. case invalidDate
  3. }
  4.  
  5. struct Spaceship : Codable {
  6. var name: String
  7. var createdAt: Date
  8. }
  9.  
  10. let decoder = JSONDecoder()
  11. decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
  12. let container = try decoder.singleValueContainer()
  13. let dateStr = try container.decode(String.self)
  14.  
  15. let formatter = DateFormatter()
  16. formatter.calendar = Calendar(identifier: .iso8601)
  17. formatter.locale = Locale(identifier: "en_US_POSIX")
  18. formatter.timeZone = TimeZone(secondsFromGMT: 0)
  19. formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX"
  20. if let date = formatter.date(from: dateStr) {
  21. return date
  22. }
  23. formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssXXXXX"
  24. if let date = formatter.date(from: dateStr) {
  25. return date
  26. }
  27. throw DateError.invalidDate
  28. })
Add Comment
Please, Sign In to add comment