If your Jira and ADO are hosted in different time zones, and you need to manipulate the date/time fields so that the same date is kept, here is how we do it. Let us assume:


replica.customFields."Start date" = issue.customFields."Start date"
replica.due = issue.due


import java.text.SimpleDateFormat
import java.text.DateFormat
import java.util.Calendar
import java.util.Date

def datePattern = "yyyy-MM-dd HH:mm:ss";
DateFormat formatter = new SimpleDateFormat(datePattern);
dateString = replica."start"
dateString = dateString.replaceAll("T"," ").trim();
dateString = dateString.replaceAll("Z"," ").trim();  
date = formatter.parse(dateString);
def timestamp = date.time
Calendar calendar = Calendar.getInstance()
calendar.timeInMillis = timestamp
calendar.add(Calendar.HOUR_OF_DAY, -5)
def updatedTimestamp = calendar.timeInMillis
issue.customFields."Start date".value = updatedTimestamp

dateString = replica."duedate"
dateString = dateString.replaceAll("T"," ").trim();
dateString = dateString.replaceAll("Z"," ").trim();  
date = formatter.parse(dateString);
timestamp = date.time
calendar.timeInMillis = timestamp
calendar.add(Calendar.HOUR_OF_DAY, -5)
issue.due = calendar.getTime()
replica."start" = workItem."Microsoft.VSTS.Scheduling.StartDate"
replica."duedate" = workItem."Microsoft.VSTS.Scheduling.DueDate"
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date

def convertJiraTimeToAdoTime(String dateString){
    if(dateString == null) return 
    String inputFormat = "yyyy-MM-dd HH:mm:ss.S"
    String outputFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"

    // Create SimpleDateFormat objects for the input and output formats
    SimpleDateFormat inputDateFormat = new SimpleDateFormat(inputFormat)
    SimpleDateFormat outputDateFormat = new SimpleDateFormat(outputFormat)

    // Parse the input date string into a Date object
    Date date = inputDateFormat.parse(dateString)

    def timestamp = date.time
    Calendar calendar = Calendar.getInstance()
    calendar.timeInMillis = timestamp
    calendar.add(Calendar.HOUR_OF_DAY, 5)
    def updatedTimestamp = calendar.timeInMillis

    // Convert the Date object into the output format
    return outputDateFormat.format(updatedTimestamp) // String
}

// does not set the field
String inputDateString = replica.customFields."Start date"?.value 
workItem."Microsoft.VSTS.Scheduling.StartDate" = convertJiraTimeToAdoTime(inputDateString)
inputDateString = replica.due 
workItem."Microsoft.VSTS.Scheduling.DueDate" = convertJiraTimeToAdoTime(inputDateString)