简体   繁体   中英

Mule - Converting String to Date

I have a csv file which looks like this :

在此处输入图片说明

I am iterating the CSV file using For each after converting it to Java ArrayList using Dataweave. Now, I need to convert one of the elements which is Date from String to Oracle Timestamp . Please help with your thoughts. The source code looks like this :

<flow name="testFlow">
    <file:inbound-endpoint path="src/main/resources/input" 
moveToDirectory="src/main/resources/output" connector-ref="File" 
responseTimeout="10000" doc:name="File"/>
    <dw:transform-message metadata:id="4e33c7ff-c33b-4c78-be34-79a154aa16df" 
doc:name="Transform Message">
        <dw:input-payload doc:sample="sample_data\list_csv.csv"/>
        <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload]]></dw:set-payload>
    </dw:transform-message>
    <logger level="INFO" doc:name="Logger"/>
    <foreach collection="#[payload]" doc:name="For Each">
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
    </foreach>
</flow>

Flow design looks like this :

在此处输入图片说明

Basically what you need to do is to convert the date field which is a string in csv to date format. To do it just provide the format of the incoming data field and it will work for the below input example(csv is comma separated) :-

foo,bar,Name,Date
foo1,baar1,Name1,15-01-2016 12:08
foo2,baar2,Name2,15-01-2016 12:08

you can try below dw :-

%dw 1.0
%output application/java
---
payload map {
    foo : $.foo,
    bar : $.bar,
    Name :  $.Name,
    Date : $.Date as :date {format: "dd-MM-yyyy hh:mm" }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM