使用带有Talend Open Studio的T-map将字符串转换为日期

时间:2018-03-20 16:51:25

标签: date datetime talend

我在使用Talend Open Studio转换几个sting字段时遇到了麻烦。所有日期字段都通过csv以“MM / dd / yyyy hh:mm:ss aa”格式来找我,例如“03/20/2018 2:40:03 PM”

许多日期字段都很好,使用t-map组件和talend.date(解析日期)进行转换正常。问题发生在两个领域,其中几乎所有日期都以“12/30/1899 00:00:00 AM”进入

我正在使用tmap将文件推送到toutputdelimited(CSV)。 “12/30/1899 00:00:00 AM”字段的格式将以“#######################”的形式返回。关于如何处理这种情况的任何想法都会很棒。输出日期格式为“yyyy-MM-dd HH:mm:ss”

同样,所有其他字段都按预期进行转换。它只是特殊情况“12/30/1899 00:00:00 AM”造成了问题。

Thans!

1 个答案:

答案 0 :(得分:0)

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

 tFileInputDelimited -- tMap -- output

在tMap表达式中,你可以这样:

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