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?
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:
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:
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.