如何在Talend中将特定字符串转换为日期

时间:2019-10-22 16:21:04

标签: talend date-conversion

妙计

10月21日至10月27日(2019)

有什么方法可以将上述文本转换为日期格式,我只想将2019年10月21日作为21/10/2019格式

1 个答案:

答案 0 :(得分:2)

是的,这并不简单,因为您仅在一个字段上有两个日期,而Year只出现一次。

您可以使用tMap_1-> tNormalize-> tMap_2

在tMap_1中,您必须将“ MMM-dd”与“ YYYY”分开,该字符出现在字符串的末尾。在输入字段上使用拆分方法:

myFlow.myDateField.split("\\(")[0] will give you the part with `Oct 21 - Oct 27`
myFlow.myDateField.split("\\(")[1] will give you the part with the year. 

使用StringHandling.LEFT仅获取年份,而不用右括号。 使用StringHandling.TRIM摆脱多余的空间。 然后您将在输出中有两个字段。

然后,您可以使用tNormalize(在“-”上标准化)将年份放在每个MMM / dd字段的前面。 在输出中,您将有两行两列:

"Oct 21|2019"
"Oct 27|2019"

在最终的tMap中,根据需要连接两个输入字段,并使用TalendDate.parseDateLocale来解析日期。 (TalendDate.parseDate将不起作用,因为您具有“ Oct”,这需要parseDateLocale方法才能起作用。)