2017-02-14 14 views
0

У меня есть требование, когда нужно найти разницу между двумя датами с использованием dataweave. Оба входа и выхода - это формат XML.операции с датами в mule esb с использованием данных weave

оба формата даты - yyyy.mm.dd, а формат выходной даты должен быть равен mm.dd.yy или mm.dd.yyyy.

Пожалуйста, помогите мне, спасибо

+0

Вы можете хотите рассмотреть решение Java вместо https://stackoverflow.com/questions/27857901/calculating-processing-time-for-a-mule-flow-by -using -перехватчики –

ответ

1

Вы можете форматировать даты, как это (пример):

yourInputDate как: LocalDateTime {формат: "YYYY-MM-dd'T'HH: мм: сс"})

можно складывать и вычитать даты, другой пример того, как я использую это в проекте с переменными:

%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

0

Вы можете создать глобальную функцию с помощью Java/Groovy и использовать объект DateTime, чтобы найти разницу и вернуться от этой функции. Теперь вы можете использовать эту функцию в своей передаче данных.

1

В Dataweave, вы можете преобразовать строку в формат даты, а затем просто вычесть их

Входной

<dates> 
    <startDate>2007.05.01</startDate> 
    <endDate>2017.02.15</endDate> 
</dates> 

Transform

%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 дней

+0

Эй, абхай, я тоже получил тот же результат :), но здесь формат выходной даты (разность) должен быть mm-dd-yyyy или mm-dd-yy – Thiru

+0

Как 09-14-09 в течение 9 лет, 9 месяцев , 14 дней? немного объяснить – Abhay

0

Вычитание двух дат в 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" 
}