2017-10-05 73 views
0

我有一個CSV文件看起來像這樣:騾子 - 轉換字符串到日期

enter image description here

我循環使用對於每一個CSV文件使用Dataweave將其轉換成Java的ArrayList後。 現在,我需要將日期從字符串中的一個元素轉換爲Oracle時間戳。請幫助你的想法。源代碼如下所示:

<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設計看起來是這樣的:

enter image description here

回答

0

基本上你需要做的是到日期字段這是CSV的字符串日期格式轉換。要做到這一點只需要提供輸入數據字段的格式,它會在下面輸入示例工作(CSV是逗號分隔): -

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

你可以試試下面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" } 
}