How do I format JSON Date String with Swift?

后端 未结 5 1682
Happy的楠姐
Happy的楠姐 2020-12-29 06:55

I make an http get request to a server and get back a json object with a date string like this:

{
    name = \"Place1\";
    temperature = 79;
    humidity =         


        
5条回答
  •  青春惊慌失措
    2020-12-29 07:23

    Nowadays (September 2017) in Swift 4 there are smarter ways to decode ISO8601:

    • ISO8601DateFormatter

      let str = "2013-07-21T19:32:00Z"
      let formatter = ISO8601DateFormatter()
      let yourDate = formatter.date(from: str)
      
    • JSONDecoder

      struct Place : Decodable {
      
          let name : String
          let temperature : Int
          let humidity : Int
          let reportedAt : Date
      
      }
      
      let json = """
      {"name" : "Place1", "temperature" : 79, "humidity" : 68, "reported_at" : "2013-07-21T19:32:00Z"}
      """
      let data = Data(json.utf8)
      
      let decoder =  JSONDecoder()
      decoder.dateDecodingStrategy = .iso8601
      decoder.keyDecodingStrategy = .convertFromSnakeCase
      let place = try! decoder.decode(Place.self, from: data)
      

提交回复
热议问题