About:
- OIC provides date and time in UTC format. Sometimes as per project requirement, we require to change the UTC format to another timezone.
- Oracle provides OOTB XSLT function fn:adjust-dateTime-to-timezone() to achieve this objective.
- The fn:adjust-dateTime-to-timezone() function adjusts an xs:dateTime value to a specific time zone or removes the time zone component from the value.
Format:
fn:adjust-dateTime-to-timezone(dateTime-value, timezone-value)
dateTime-value: the dateTime value that is to be adjuated.
timezone-value : A duration that represents the time zone to which dateTime-value is to be adjusted. timezone-value can be an empty sequence or a single value of type xs:dayTimeDuration() between -PT14H to PT14H. This component also can include minutes like this for IST, PT5H30M.
Use case: we will convert UTC to IST and UK timezone using XSLT function.
Implementation Steps:
Step1: For this POC, we have Scheduled integration
Step2: Drop an assign activity on the integration canvas and create following variables:
currentDateTime: /nssrcmpr:schedule/nssrcmpr:startTime
IndiaTimeZone: string(fn:adjust-dateTime-to-timezone(nssrcdfl:dateTime(/nssrcmpr:schedule/nssrcmpr:startTime),nssrcdfl:dayTimeDuration('PT5H30M')))
UKTimeZone: string(fn:adjust-dateTime-to-timezone(nssrcdfl:dateTime(/nssrcmpr:schedule/nssrcmpr:startTime),nssrcdfl:dayTimeDuration('PT1H')))
Steps with Screenshots:
Testing output:
Note: we can also use fn-adjust-time-to-timezone funstion to adjusts an xs:time value to a specific time zone or removes time zone component from the value.
Reference for more details about the XSLT function:
https://www.ibm.com/docs/en/i/7.2?topic=functions-fnadjust-datetime-timezone-function