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

如何在Talend中将特定字符串转换为日期,talend,date-conversion,Talend,Date Conversion,在塔伦德 2019年10月21日至27日 有没有办法将上述文本转换为日期格式,我只希望2019年10月21日为2019年10月21日格式是的,这并不简单,因为一个字段上只有两个日期,年份只显示一次 您可以通过tMap_1-->t标准化-->tMap_2来实现这一点 在tMap_1中,必须将“MMM dd”与“YYYY”分开,后者出现在字符串的末尾。在输入字段上使用拆分方法: myFlow.myDateField.split("\\(")[0] will give you the part wit

在塔伦德

2019年10月21日至27日


有没有办法将上述文本转换为日期格式,我只希望2019年10月21日为2019年10月21日格式是的,这并不简单,因为一个字段上只有两个日期,年份只显示一次

您可以通过tMap_1-->t标准化-->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(normalize on“-”)将年份放在每个MMM/dd字段的前面。 在输出中,您将有两行两列:

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

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

是的,这并不简单,因为一个字段上只有两个日期,年份只显示一次

您可以通过tMap_1-->t标准化-->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(normalize on“-”)将年份放在每个MMM/dd字段的前面。 在输出中,您将有两行两列:

"Oct 21|2019"
"Oct 27|2019"
在最后一个tMap中,根据需要连接两个输入字段,并使用
TalendDate.parseDateLocale
解析日期。(TalendDate.parseDate无法工作,因为您有“Oct”,这需要parseDateLocale方法才能工作)