无法在 tMap 组件 Talend 中将字符串转换为日期

Unable to convert string into date in tMap component Talend

我遇到了一些类似的问题,但这些解决方案对我不起作用我有一个日期字段,它是时间戳的字符串"1631898440"我尝试使用 tMap 将此字符串转换为日期但出现此错误- java.lang.RuntimeException: java.text.ParseException: Unparseable date: "1631898440".

我正在使用的功能-

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

也尝试过-

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

在此我得到这个错误- timestamp out of range: "898442-07-16 00:00:00+05:30"ERROR

如何解决这个问题是不是日期格式有问题?

在您的用户例程中创建一个像这样的函数:

 public static Date Convert_String_To_Date(String String_Timestamp) {
        
        SimpleDateFormat sf = new SimpleDateFormat("ddMMyyyy");
        Date date = new Date(Long.parseLong(String_Timestamp));
        System.out.println("*** Date Converted to this patter ddMMyyyy : "+sf.format(date));
        return TalendDate.parseDate("ddMMyyyy",sf.format(date)) ; 
    }

别忘了导入

import java.text.SimpleDateFormat;
import java.util.Date;

然后对我来说,我只是把一个 tjava 组件放在我调用我的函数的地方,如下所示

String str = "1631898440";
System.out.println(Format_String_Date.Convert_String_To_Date(str)) ; 

所以,在你的情况下,我猜你会像这样在你的 tMap 中调用这个函数:

row5.mydatecolumn!=null && !"".equalsIgnoreCase(row5.mydatecolumn)? 
Format_String_Date.Convert_String_To_Date(row5.mydatecolumn) :null 

这是输出

[statistics] connected
*** Date Converted to this patter ddMMyyyy : 19011970
Mon Jan 19 00:00:00 CET 1970
[statistics] disconnected