我有一个csv文件,如下所示:
我使用Dataweave将CSV文件转换为Java ArrayList后,使用For文件迭代。 现在,我需要将Date中的一个元素从String转换为 Oracle Timestamp 。请帮助你的想法。源代码如下所示:
<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>
流程设计如下所示:
答案 0 :(得分: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" }
}