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.

No se puede convertir la cadena en una fecha en el componente tMap de Talend.

He revisado algunas preguntas similares, pero esas soluciones no funcionaron para mí. Tengo un campo de fecha que es una cadena de marca de tiempo "1631898440". Intenté convertir esta cadena en una fecha usando tMap, pero obtuve este error: java.lang.RuntimeException: java.text.ParseException: Fecha no analizable: "1631898440".

La función que estoy utilizando es:

row5.mydatecolumn!=null && !"".equalsIgnoreCase(row5.mydatecolumn)? TalendDate.parseDateLocale("EEE MMM dd HH:mm:ss zzz yyyy", row5.mydatecolumn, "EN") :null 

También intenté:

TalendDate.parseDate("ddMMyyyy",row5.mydatecolumn)

En esto, obtengo este error: timestamp fuera de rango: "898442-07-16 00:00:00+05:30"ERROR.

¿Cómo puedo resolver este problema? ¿Hay algo incorrecto en el formato de la fecha?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema parece estar relacionado con el formato de la cadena de fecha. El timestamp 1631898440 es un formato de timestamp Unix, que representa el número de segundos transcurridos desde el 1 de enero de 1970 (también conocido como “epoch”).

    Para convertir este timestamp a un formato de fecha, puedes utilizar la función TalendDate.toDate() en Talend con la cadena de formato adecuada. La cadena de formato para los timestamps Unix es "yyyy-MM-dd HH:mm:ss".

    Aquí tienes un ejemplo de cómo puedes convertir el timestamp a un formato de fecha en Talend:

    TalendDate.toDate(Integer.parseInt(row5.mydatecolumn), "yyyy-MM-dd HH:mm:ss")
    

    Esto te dará la fecha en el formato que necesitas.

    Alternativamente, puedes convertir el timestamp a un formato de fecha utilizando una expresión en Java en Talend. Aquí tienes un ejemplo de cómo puedes hacerlo:

    new java.util.Date(Long.parseLong(row5.mydatecolumn) * 1000)
    

    Esta expresión multiplica el timestamp por 1000 para convertirlo a milisegundos y luego crea un nuevo objeto Date.

    Asegúrate de comprobar la salida de tu trabajo y verificar que las fechas se estén formateando correctamente.

Comments are closed.