Как преобразовать определенную строку в дату в Talend - PullRequest
0 голосов
/ 22 октября 2019

В календаре

21 октября - 27 октября (2019)

есть ли какой-либо способ преобразовать вышеуказанный текст в формат даты, я только хочу 21 октября 2019 года как формат 21/10/2019

1 Ответ

1 голос
/ 23 октября 2019

Да, это не просто, так как у вас есть две даты только в одном поле, причем год появляется только один раз.

Этого можно добиться с помощью 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).

...