Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

399
Vistas
¿Cómo convertir mySQL datetime devuelto en un objeto JSON a una fecha Swift?

Tengo un objeto JSON que tiene una fecha y hora mySQL dentro que necesito decodificar en Swift y compararlo con otra fecha. ¿Cómo puedo convertir esta fecha y hora mySQL en una fecha Swift?

A continuación se muestra lo que se devuelve en el objeto JSON:

 {"startDate": "Sun, 02 Aug 2020 00:00:00 GMT"}

Así es como hemos intentado decodificarlo:

 struct jsonDate: Codable { let startDate: String } let tempDate = try JSONDecoder().decode(jsonDate.self, from: data) let dateFormatter = DateFormatter() dateFormatter.locale = Locale(identifier: "en_US_POSIX") dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" let previousSunday = dateFormatter.date(from: tempDate.startDate)!
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Según la cadena que proporciona para el JSON, el formato de fecha que está configurando en el formateador es incorrecto. El formato que establezca coincide con las cadenas con formato ISO-8601, como

 2020-02-08 00:00:00 Z

pero su cadena requeriría un formato como

 E, dd MMM yyyy HH:mm:ss ZZZZ

en cambio.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede analizar su cadena de fecha usando DateFormatter y configurando un dateFormat de fecha correcto:

 let dateFormatter = DateFormatter() dateFormatter.locale = Locale(identifier: "en_US_POSIX") dateFormatter.dateFormat = "E, dd MMM yyyy HH:mm:ss Z" let previousSunday = dateFormatter.date(from: tempDate.startDate)!

Puede echar un vistazo a este sitio NSDateFormatter.com para obtener más información.


Nota

Recomiendo no forzar el desenvolvimiento de opcionales:

 dateFormatter.date(from: tempDate.startDate)! // crash if `nil`

y proporcione un valor predeterminado en su lugar o arroje un error:

 if let previousSunday = dateFormatter.date(from: tempDate.startDate) { // previousSunday is valid } else { // throw an error etc. }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda