如何使用DataWeave从Mule中的日期字符串中减去一天

时间:2017-03-21 14:49:08

标签: string date mule dataweave

我想使用date从Mule中string DataWeave减去一天:

Exemple:

Input date : 18/03/2017 09:20:55
Output date : 17/03/2017 09:20:55

3 个答案:

答案 0 :(得分:1)

%dw 1.0
%output application/json
%var aPeriod=("P" ++ 1 ++ "D") as :period
%var cDatetime= now as :datetime {format: "MM/dd/yyyy HH:mm:ss"} 
---
{
previousDate: (cDatetime - aPeriod) as :datetime {format: "MM/dd/yyyy HH:mm:ss"} 
}

答案 1 :(得分:1)

作为另一种选择,我们可以按照Date Time Operations文档中的示例来减去一段时间。在那个例子中,我们可以定义'|'之间的时间段字符。例如:|P1D|

因此,我们可以执行以下步骤从日期字符串中减去一天:

  1. 将日期字符串转换为日期"18/03/2017 09:20:55" as :localdatetime {format: "dd/MM/yyyy HH:mm:ss"}
  2. 减去一天:[the Date on step #1] - |P1D|
  3. 日期转换回字符串[the subtracted Date on step #2] as :string {format: "dd/MM/yyyy HH:mm:ss"}

答案 2 :(得分:0)

{currentdateTime :(现为:localdatetime {格式:“dd / MM / yyyy HH:mm:ss”})as:string {format:“dd / MM / yyyy HH:mm:ss”},beforedate: ((currentdateTime) - | P1D |)as:string {format:“dd / MM / yyyy HH:mm:ss”}}