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.

La función LocalDate.parse no puede analizar el carácter en el último índice donde no hay ningún carácter (ni espacio vacío).

Tengo en mi archivo Notepad el siguiente texto:

19-12-2021

Verifiqué si había algún espacio vacío, pero no hay ninguno.

Cuando escribo:

String noticeLastUpdateDate = textFileDAO.getMoneyTableNoticeLastUpdateDate();
DateTimeFormatter formatterDate = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate dateNow = LocalDate.parse(noticeLastUpdateDate, formatterDate);

Recibo un error:

java.time.format.DateTimeParseException: No se pudo analizar el texto '19-12-2021', se encontró texto sin analizar en el índice 10

Pero ¡no hay un índice 10! ¿Por qué piensa que hay un índice [10]?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que se encontró texto no analizado en el índice 10. Esto significa que hay texto adicional después de la cadena de fecha “19-12-2021” que no puede ser analizado por DateTimeFormatter.

    Para resolver este problema, verifica si hay caracteres invisibles o espacios en blanco después de la cadena de fecha. Podría ser un carácter de nueva línea o un espacio en blanco que no es visible cuando ves el archivo de texto en el bloc de notas.

    Puedes intentar recortar la cadena antes de analizarla, de esta manera:

    String noticeLastUpdateDate = textFileDAO.getMoneyTableNoticeLastUpdateDate().trim();
    DateTimeFormatter formatterDate = DateTimeFormatter.ofPattern("dd-MM-yyyy");
    LocalDate dateNow = LocalDate.parse(noticeLastUpdateDate, formatterDate);
    

    Esto debería eliminar cualquier espacio en blanco adicional o caracteres invisibles que puedan estar causando el problema.

Comments are closed.