Mule使用表达式组件更改flowVars字符串日期格式

时间:2017-07-11 05:44:28

标签: mule esb mule-studio mule-component mule-esb

我正在传递inputDate: 2017-06-27 16:46:36

我想将格式转换为 2017年6月27日

使用表达式组件

我正在尝试这个

flowVars.inputDate = new org.mule.el.datetime.DateTime(new Date(flowVars.inputDate),"yyyy-MM-dd HH:mm:ss");

2 个答案:

答案 0 :(得分:2)

您可以通过两种方式使用dataweave脚本

1:

<dw:transform-message doc:name="Transform Message">
<dw:set-variable variableName="inputDate"><![CDATA[%dw 1.0
%output application/java
---
flowVars.inputDate as :localdatetime {format:'yyyy-MM-dd HH:mm:ss'} as :string {format:'dd-MMMM-yyyy'}]]></dw:set-variable>
</dw:transform-message>

2:

<set-variable variableName="inputDate" value="#[dw(&quot;flowVars.inputDate as :localdatetime {format:'yyyy-MM-dd HH:mm:ss'} as :string {format:'dd-MMMM-yyyy'}&quot;)]" doc:name="Variable"/>

希望这有帮助。

答案 1 :(得分:0)

您可以从表达式组件

获得所需的结果
<expression-component doc:name="Expression"><![CDATA[String date_s = "2017-06-27 16:46:36"; 
java.text.SimpleDateFormat dt = new  java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
java.util.Date date = dt.parse(date_s); 
java.text.SimpleDateFormat dt1 =  new java.text.SimpleDateFormat("dd-MMMM-yyyy");
flowVars.inputDt = dt1.format(date);]]></expression-component>
        <logger message="-------#[flowVars.inputDt]" level="INFO" doc:name="Logger"/>