使用 T-map 和 Talend Open Studio 将字符串转换为日期
Converting String to Date using T-map with Talend Open Studio
我在使用 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”。
谢谢!
因为你的日期可以是不同的格式,你需要在你的 tFileInputDelimited 中读取你的列作为字符串类型,然后在 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)
我在使用 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”。
谢谢!
因为你的日期可以是不同的格式,你需要在你的 tFileInputDelimited 中读取你的列作为字符串类型,然后在 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)