Да, это не просто, так как у вас есть две даты только в одном поле, причем год появляется только один раз.
Этого можно добиться с помощью 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 (normalize on "-"), чтобы поставить год перед каждым полем MMM / dd. В выходных данных у вас будет две строки и два столбца:
"Oct 21|2019"
"Oct 27|2019"
В конечном tMap объедините два поля ввода по своему желанию и используйте TalendDate.parseDateLocale
для анализа даты. (TalendDate.parseDate не будет работать, так как у вас есть «Oct», для работы которого требуется метод parseDateLocale).