使用数据编织在mule esb中进行日期操作

使用数据编织在mule esb中进行日期操作,mule,dataweave,Mule,Dataweave,我有这样的需求,比如需要使用dataweave查找两个日期之间的差异,输入和输出都是XML格式 两种日期格式都是yyyy.mm.dd,输出日期格式必须类似于mm.dd.yy或mm.dd.yyyy 请帮助我,谢谢您可以设置如下日期格式(示例): yourInputDate为:localdatetime{格式:“yyyy-MM-dd'HH:MM:ss”}) 您可以添加和减去日期,这是我如何在带有变量的项目中使用它的另一个示例: %var stamp = (now as :localdatetime

我有这样的需求,比如需要使用dataweave查找两个日期之间的差异,输入和输出都是XML格式

两种日期格式都是yyyy.mm.dd,输出日期格式必须类似于mm.dd.yy或mm.dd.yyyy


请帮助我,谢谢

您可以设置如下日期格式(示例):

yourInputDate为:localdatetime{格式:“yyyy-MM-dd'HH:MM:ss”})

您可以添加和减去日期,这是我如何在带有变量的项目中使用它的另一个示例:

%var stamp = (now as :localdatetime {format: "yyyy-MM-dd'T'HH:mm:ss"})
%var dayDiff = ("P" ++ (stamp.dayOfWeek - 1) ++ "D") as :period
%var firstDateWeek = (stamp - dayDiff) as :localdatetime {format: "yyyy-MM-dd"}

此处的文档:

您可以设置如下日期格式(示例):

yourInputDate为:localdatetime{格式:“yyyy-MM-dd'HH:MM:ss”})

您可以添加和减去日期,这是我如何在带有变量的项目中使用它的另一个示例:

%var stamp = (now as :localdatetime {format: "yyyy-MM-dd'T'HH:mm:ss"})
%var dayDiff = ("P" ++ (stamp.dayOfWeek - 1) ++ "D") as :period
%var firstDateWeek = (stamp - dayDiff) as :localdatetime {format: "yyyy-MM-dd"}

这里的文档:

您可以使用Java/Groovy创建一个全局函数,并使用DateTime对象查找差异并从该函数返回。现在,您可以在dataweave中使用该函数。

您可以使用Java/Groovy创建一个全局函数,并使用DateTime对象查找差异并从该函数返回。现在,您可以在dataweave中使用该函数。

在dataweave中,您可以将字符串转换为日期格式,然后减去它们

输入

<dates>
   <startDate>2007.05.01</startDate>
   <endDate>2017.02.15</endDate>
</dates>
{
   "difference": "P9Y9M14D"
}
输出

<dates>
   <startDate>2007.05.01</startDate>
   <endDate>2017.02.15</endDate>
</dates>
{
   "difference": "P9Y9M14D"
}

在Dataweave中,您可以将字符串转换为日期格式,然后减去它们

输入

<dates>
   <startDate>2007.05.01</startDate>
   <endDate>2017.02.15</endDate>
</dates>
{
   "difference": "P9Y9M14D"
}
输出

<dates>
   <startDate>2007.05.01</startDate>
   <endDate>2017.02.15</endDate>
</dates>
{
   "difference": "P9Y9M14D"
}

9年9个月14天减去dataweave中的两个日期。根据您的要求设置日期格式

%dw 1.0
%output application/json
---
{
  a: |23:59:56-03:00| - |22:59:56-00:00|,
  b: |2003-10-01| - |2002-09-23|
}

{
  "a": "PT-4H",
  "b": "P-1Y-8D"
}

在dataweave中减去两个日期。根据您的要求设置日期格式

%dw 1.0
%output application/json
---
{
  a: |23:59:56-03:00| - |22:59:56-00:00|,
  b: |2003-10-01| - |2002-09-23|
}

{
  "a": "PT-4H",
  "b": "P-1Y-8D"
}

嘿,阿比,我也得到了相同的输出:)但这里的输出日期格式(差异)必须是mm dd yyyy或mm dd yyyy,比如09-14-09,持续9年9个月14天?解释一个bitHey Abhay,我也得到了相同的输出:)但这里的输出日期格式(差异)必须是mm dd yyyy或mm dd yyyy,就像09-14-09,持续9年9个月14天?解释一下,你可能想考虑java解决方案,而不是想java解决方案,