【问题标题】:Convert String to ISO date format in Talend在 Talend 中将字符串转换为 ISO 日期格式
【发布时间】:2018-06-09 14:22:12
【问题描述】:

我有 Excel 数据并尝试使用 Talend Big Data for Open Studio 将数据插入 MongoDB。这是我的工作,

tFileInputExcel --> tMap --> tMongoDBOutput

在 excel 表中,我有一个日期值列,格式为 7/13/2017(MM/dd/yyyy) 作为字符串类型,我正在尝试将此列值插入为 ISO 格式ISODate("2017-07-13T00:00:00.000Z") 在 MongoDB 中。

这是我的工作:
tFileInputExcel:

tMap:

tMongoDB 输出:

执行此作业时,我收到以下错误。 错误:

当我像这样 TalendDate.parseDate("MM/dd/yyyy",row1.ClosingDate) 更改解析格式时,我收到 SimpleDateFormat 错误。 简单日期格式错误 如何解决这个问题?

【问题讨论】:

    标签: mongodb talend date-formatting isodate string-to-datetime


    【解决方案1】:

    如果你的 mongodb 列模式是日期,你可以这样做:

    TalendDate.parseDate("MM/dd/yyyy",row3.newColumn) 
    

    这将自动转换您的 mongoDB 列具有的日期模型中的日期。

    您可以在 Talend 的架构中更改日期模型,例如 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

    【讨论】:

    • 应该是 MM/dd/yyyy 你错过了一个 y
    • 我收到错误并在上面添加了我的工作信息,错误快照。
    • 尝试从“row1.ClosingDate”中删除引号
    • 是的,我已经进行了这些更改,但它显示 SimpleFormat 错误。
    【解决方案2】:

    这是在不了解底层数据类型的情况下读取数据时非常常见的错误。

    我专门为 Talend 写了一篇博客:https://www.tobiasmaasland.de/2017/07/20/using-date-in-talend-etl-jobs/

    但是让我解释一下。

    有时 Excel 会尝试转换单元格中的数据,即使有人可能认为单元格类型设置为字符串。 Insted,它设置为日期。因此,无需转换,输入组件中的类型需要为 Date。

    如果是String并且发生错误,则String的结构要么到处都不相同,要么某些单元格为空(null)。所以你可能会很幸运

    TalendDate.parseDate("MM/dd/yyyy", (row1.ClosingDate == null), "01/01/1970", row1.ClosingDate)
    

    我只是假设您可能想要使用一个占位符日期,该日期设置为空。

    这在很大程度上取决于单元格中的实际数据类型、每个单元格是否具有相同的数据类型以及所有数据的格式是否正确。

    总结一下我的博客文章中的一个事实:不要使用字符串作为日期。在 Excel 中使用日期作为日期。它使一切变得更容易。

    【讨论】:

      猜你喜欢
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多