2017-10-05 74 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" } 
}