我有需要在哪裏需要使用dataweave查找兩個日期之間的差異,輸入和輸出都是XML格式。在mule esb中使用數據編織的日期操作
兩種日期格式均爲yyyy.mm.dd,輸出日期格式必須與mm.dd.yy或mm.dd.yyyy類似。
請幫助我,謝謝
我有需要在哪裏需要使用dataweave查找兩個日期之間的差異,輸入和輸出都是XML格式。在mule esb中使用數據編織的日期操作
兩種日期格式均爲yyyy.mm.dd,輸出日期格式必須與mm.dd.yy或mm.dd.yyyy類似。
請幫助我,謝謝
您可以格式化日期這樣的(例子):
yourInputDate爲:localdatetime {格式爲: 「YYYY-MM-dd'T'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"}
文檔瀏覽:https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-types#datetime
您可以使用Java/Groovy創建全局函數,並使用DateTime對象來查找差異並從該函數返回。現在,您可以在數據織物中使用該功能。
在Dataweave,您可以將字符串轉換爲日期格式,然後直接減除他們
輸入
<dates>
<startDate>2007.05.01</startDate>
<endDate>2017.02.15</endDate>
</dates>
變換
%dw 1.0
%var startDate = payload.dates.startDate as :date {format: "yyyy.MM.dd"}
%var endDate = payload.dates.endDate as :date {format: "yyyy.MM.dd"}
%output application/json
---
{
difference: startDate - endDate
}
輸出
{
"difference": "P9Y9M14D"
}
9年9個月,14天
減去dataweave兩個Date。根據您的要求
%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"
}
你可能想考慮的Java解決方案,而不是, https://stackoverflow.com/questions/27857901/calculating-processing-time-for-a-mule-flow-by格式化日期使用攔截器 –