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

582
Vistas
Forma correcta de analizar la fecha en Kotlin Android (versión mínima de Android 21). Mi análisis no funciona

Quiero analizar esta fecha en este formato 2021-11-03T14:09:31.135Z ( message.created_at )

Mi código es este:

 val dateFormat = SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS") var convertedDate = Date() try { convertedDate = dateFormat.parse(message.created_at) } catch (e: ParseException) { e.printStackTrace() }

Está fallando al analizar

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No use SimpleDateFormat , está desactualizado y es problemático .
Utilice DateTimeFormatter para analizar la fecha.

 fun parseDate() { var formatter: DateTimeFormatter? = null val date = "2021-11-03T14:09:31.135Z" // your date string if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX") // formatter val dateTime: ZonedDateTime = ZonedDateTime.parse(date, parser) // date object val formatter2: DateTimeFormatter = DateTimeFormatter.ofPattern("EEEE, MMM d : HH:mm") // if you want to convert it any other format Log.e("Date", "" + dateTime.format(formatter2)) } }

Salida: miércoles, 3 de noviembre: 14:09

Para usar esto debajo de Android 8, use desugaring

over 4 years ago · Santiago Trujillo Denunciar

0

Bueno, el formato no es exactamente como se ve la cadena:

  • Tiene un espacio en lugar de la T literal entre la fecha y la hora
  • No tienes notación de compensación al final.
  • Está utilizando hh , que es un formato de 12 horas. Utilice HH en su lugar.

Este formato debería hacerlo:

 yyyy-MM-dd'T'HH:mm:ss.SSSX

Sin embargo, tenga en cuenta que Date y SimpleDateFormat son obsoletos y problemáticos . Utilice java.time en su lugar. Si su nivel de API de Android parece ser demasiado bajo, puede usar ThreeTen Backport .

over 4 years ago · Santiago Trujillo Denunciar

0

Si su nivel mínimo de API es 21, puede usar API Deugaring , encuentre algunas buenas explicaciones al respecto aquí .

Tan pronto como haya habilitado API Deugaring, puede analizar directamente su String ISO en un OffsetDateTime :

 val convertedDate = OffsetDateTime.parse(message.created_at)
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