【问题标题】:Converting String to Date using T-map with Talend Open Studio使用 T-map 和 Talend Open Studio 将字符串转换为日期
【发布时间】:2018-03-20 16:51:25
【问题描述】:

我在使用 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”会导致问题。

谢谢!

【问题讨论】:

标签: date datetime talend


【解决方案1】:

由于您的日期可以是不同的格式,您需要在 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 2013-07-20
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多