es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir una fecha de yyyy/MM/dd a dd/MM/YYY, la función siguiente da un error.

Cómo convertir una fecha de yyyy/MM/dd a dd/MM/YYY. La siguiente función da un error:

fun convertTime(date: String): String {
    val sdf = SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
    sdf.isLenient = false

    val d: Date = sdf.parse(date)!!
    return sdf.format(d)
}

Error:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.quitanda, PID: 10526
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
     Caused by: java.text.ParseException: Unparseable date: "2021-11-18T23:39:45.000Z"
        at java.text.DateFormat.parse(DateFormat.java:362)
Tags:  ,

Answer

  1. Avatar for davy.ai

    El error indica que el formato de fecha de entrada no coincide con el formato proporcionado en el código. Para convertir una fecha de yyyy/MM/dd a dd/MM/yyyy, modifique el código de la siguiente manera:

    fun convertTime(date: String): String {
        val originalFormat = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault())
        val targetFormat = SimpleDateFormat("dd/MM/yyyy", Locale.getDefault())
        val d: Date = originalFormat.parse(date)!!
        return targetFormat.format(d)
    }
    

    En el código anterior, estamos usando dos objetos SimpleDateFormat para analizar la cadena de fecha de entrada (date) en el formato yyyy/MM/dd y formatear la cadena de salida en el formato dd/MM/yyyy. Tenga en cuenta que estamos utilizando Locale.getDefault() para el parámetro locale para asegurarnos de que el formato de fecha coincida con la configuración del dispositivo del usuario.

Comments are closed.