%dw 2.0
output application/json
var numberOfDays = 3
---
{
oneDayBefore: |2019-10-01T23:57:59Z| - |P1D|,
threeDaysBefore: |2019-10-01T23:57:59Z| - ("P$(numberOfDays)D" as Period),
a: |2019-10-01| - |P1Y|,
b: |P1Y| - |2019-10-01|,
c: |2019-10-01T23:57:59Z| - |P1Y|,
d: |2019-10-01T23:57:59Z| + |P1Y|,
e: |2019-10-01T23:57:59| - |P1Y|,
f: |PT9M| - |23:59:56|,
g: |23:59:56| + |PT9M|,
h: |23:59:56-03:00| - |PT9M|,
u: |23:59:56-03:00| - |22:59:56-03:00|,
j: |23:59:56-03:00| - |22:59:56-00:00|,
k: |2019-10-01T23:57:59| - |P2Y9M1D| - |PT57M59S| + |PT2H|,
l: |23:59:56| - |22:59:56|,
o: |2019-10-01| - |2018-09-23|,
p: |2019-10-01T23:57:59Z| - |2018-10-01T23:57:59Z|,
q: |2019-10-01T23:57:59| - |2018-10-01T23:57:59|
}
Add and Subtract Time
This DataWeave example shows multiple addition and subtraction operations that
deal with date and time types.
Before you begin, note that DataWeave version 2 (%dw 2.0
) is for Mule 4 apps. For a
Mule 3 app, refer to DataWeave version 1
(%dw 1.0
) examples,
within the Mule 3.9 documentation set. For other Mule versions, you can use
the Mule Runtime version selector in the table of contents.
The examples use:
-
as
function to coerce a String to Period type -
P<date>T<time>
for the Period data type, which provides designators for years, months, days, hours, minutes, and seconds
For example,|P2Y9M1D|
refers to a period of two years, nine months, and one day, and|PT5H4M3S|
indicates a time period of five hours, four minutes, and three seconds.
{
"oneDayBefore": "2019-09-30T23:57:59Z",
"threeDaysBefore": "2019-09-28T23:57:59Z",
"a": "2018-10-01",
"b": "2018-10-01",
"c": "2018-10-01T23:57:59Z",
"d": "2020-10-01T23:57:59Z",
"e": "2018-10-01T23:57:59",
"f": "23:50:56",
"g": "00:08:56",
"h": "23:50:56-03:00",
"u": "PT1H",
"j": "PT4H",
"k": "2017-01-01T01:00:00",
"l": "PT1H",
"o": "PT8952H",
"p": "PT8760H",
"q": "PT8760H"
}
Note that the behavior of o: |2019-10-01| - |2018-09-23|
changed in Mule 4.3.0. DataWeave 2.3.0, which is supported by Mule 4.3.0, returns "o": "PT8952H"
. DataWeave 2.2.0, which is supported by Mule 4.2.0, returns "o": "P1Y8D"
. To restore the 2.2.0 behavior, you can set the -M-Dcom.mulesoft.dw.date_minus_back_compatibility=true
. However, the setting does not affect the Preview window in Studio. For guidance with this setting in Studio and on-prem deployments, see System Properties. For CloudHub deployments, see Manage Properties for Applications on CloudHub.