I want to subtract 365 days(1 year) from a Date which is in the below format using a script mediator and get the resultant Date in the same format.
JavaScript
x
2
1
2022-10-10T23:12:18.948+05:30
2
Following is the code I’ve tried:
JavaScript
1
11
11
1
<script language="js"><![CDATA[var log = mc.getServiceLog();
2
log.info("Logging inside Script Mediator");
3
var simpleDateFormat = Packages.java.text.SimpleDateFormat;
4
var end_date = mc.getProperty('DATE');
5
var format = new simpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
6
var d1 = format.parse(end_date);
7
var start_date = new Date();
8
start_date = d1.getTime() - 365;
9
log.info("Start Date::" +start_date);
10
]]></script>
11
But it prints
JavaScript
1
2
1
Start Date::1665425557181
2
Expected Date
JavaScript
1
2
1
2021-10-10T23:12:18.948+05:30
2
Or is it possible to achieve this without using Script Mediator? What else can I try apart from using a Script Mediator?
Advertisement
Answer
If you just want to get the same date of the previous year you can do something like below.
JavaScript
1
3
1
<property value="2022-10-10T23:12:18.948+05:30" name="timeStamp" scope="default" type="STRING"/>
2
<property name="startDate" expression="concat(substring-before($ctx:timeStamp, '-')-1, '-', substring-after($ctx:timeStamp, '-'))" />
3