Talend 日期:将 EST 时间解析为 UTC
Posted
技术标签:
【中文标题】Talend 日期:将 EST 时间解析为 UTC【英文标题】:Talend date : Parse EST time into UTC 【发布时间】:2019-01-10 12:31:15 【问题描述】:我正在尝试将 EST 时间解析为 UTC 但低于错误
[statistics] connected
Exception in component tMap_3 (sample)
java.lang.RuntimeException: java.text.ParseException: Unparseable date: ""
at routines.TalendDate.parseDate(TalendDate.java:898)
at routines.TalendDate.parseDate(TalendDate.java:842)
at local_project.sample_0_1.sample.tFileInputDelimited_3Process(sample.java:2271)
at local_project.sample_0_1.sample.tFileList_2Process(sample.java:3219)
at local_project.sample_0_1.sample.tFileList_1Process(sample.java:2872)
at local_project.sample_0_1.sample.runJobInTOS(sample.java:3514)
at local_project.sample_0_1.sample.main(sample.java:3365)
Caused by: java.text.ParseException: Unparseable date: ""
at java.text.DateFormat.parse(Unknown Source)
at routines.TalendDate.parseDate(TalendDate.java:884)
... 6 more
我使用 tMap 进行会话
TalendDate.formatDateInUTC("MM/dd/yyyy HH:mm aa",TalendDate.parseDate( "MM/dd/yyyy HH:mm aa",row9.Start_time))
预期输出:
Input string : 1/2/2019 8:50 AM EST
Expected String : 1/2/2019 1:50 PM UTC
【问题讨论】:
【参考方案1】:java.lang.RuntimeException: java.text.ParseException: Unparseable date: ""
在这一行中,您可以看到您赋予函数TalendDate.parseDate
的值,即“”,一个空字符串。这意味着row9.Start_time
为空,并且函数无法解析空字符串,这就是您得到异常的原因。
确保值row9.Start_time
被很好地填充或添加一个 if 子句以避免在它为空时解析日期。你可以试试这样的:
(row9.Start_time == null || "".equals(row9.Start_time)) ? "" : TalendDate.formatDateInUTC("MM/dd/yyyy HH:mm aa",TalendDate.parseDate( "MM/dd/yyyy HH:mm aa",row9.Start_time))
希望它会有所帮助。
【讨论】:
组件 tMap_3 中的异常(示例)java.lang.RuntimeException: java.text.ParseException: Unparseable date: ""1/14/2019 12:05 AM" at routines.TalendDate.parseDate(TalendDate .java:898) 在routines.TalendDate.parseDate(TalendDate.java:842) 仍然遇到这个问题 任何人请帮助我 @JyotiKumari 您的字符串中似乎有一个额外的 "。您应该在使用方法 parseDate 之前检查数据中的内容。以上是关于Talend 日期:将 EST 时间解析为 UTC的主要内容,如果未能解决你的问题,请参考以下文章
将 postgresql 中的 UTC 时区转换为 EST(本地时间)