如何在 Talend 中解析具有两种日期格式的列

How to parse column with two types of date format in Talend

我有 .csv 文件,其中包含名为 created_ts 的列,并且包含日期值。但是,日期有两种格式:

所以我的问题是如何从 .csv 文件中读取数据而不出现错误 "Unparseable date: 2008-10-25 18:22:32+02"

这是我如何输入日期格式的图片,但是对于 created_ts 列,我用两种不同的格式编写了日期,所以如果我输入第一个,我会得到 "Unparseable date: xxxxxx" 错误,同样如果我输入第二种格式会出错....

由于您的日期可以采用不同的格式,因此您需要在 tFileInputDelimited 中将列读取为字符串类型,然后在 tMap 中检查日期类型(一种简单的方法来通过测试它的长度来检查它)并使用正确的日期格式解析它:

tFileInputDelimited -- tMap -- output

在 tMap 表达式中,你可以有这样的东西:

row.created_ts.length() == 22 ? TalendDate.parseDate("yyyy-MM-dd hh:mm:ssX", row.created_ts) : TalendDate.parseDate("yyyy-MM-dd hh:mm:ss.SSSSSSX", row.created_ts)