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)
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
add/MM/yyyy
, modifique el código de la siguiente manera:En el código anterior, estamos usando dos objetos
SimpleDateFormat
para analizar la cadena de fecha de entrada (date
) en el formatoyyyy/MM/dd
y formatear la cadena de salida en el formatodd/MM/yyyy
. Tenga en cuenta que estamos utilizandoLocale.getDefault()
para el parámetro locale para asegurarnos de que el formato de fecha coincida con la configuración del dispositivo del usuario.