Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Subtract Two Time Stamps

Fahad Ahmad
December 6, 2018

I just started using the script runner for subtracting my custom field and created datetime

 

I am getting the values of both fields successfuly but i need to subtract them to get the difference. I am unable to subtract since both are in string format. there values are as mentioned below.

2018-12-26T15:12:00.000+0300 custom
2018-12-06T12:59:25.203+0300 issue

I have tried getTime() with them and as Date as well but no success. 

def issueKey = 'SD-9'
def customFieldName = 'customfield_10009'
def issueCreatedKey = 'created'

def result = get("/rest/api/2/issue/${issueKey}")
.header('Content-Type', 'application/json')
.asObject(Map)
if (result.status == 200) {
def custom = result.body.fields[customFieldName]
def issue = result.body.fields[issueCreatedKey]
return custom - issue
} else {
return "Error retrieving issue ${result}"
}

2 answers

1 accepted

Suggest an answer

Log in or Sign up to answer
1 vote
Answer accepted
Thanos Batagiannis [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
June 26, 2017

Hi Thu,

Try a custom script post-function like 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.user.ApplicationUser

def issue = issue as MutableIssue

def cf = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("UserPicker")
def cfValue = issue.getCustomFieldValue(cf) as ApplicationUser

if (cfValue) {
    issue.setReporter(cfValue)
}
else {
    log.debug "Did not update the reporter because value of UserPicker field was null"
}

Please let me know if this does the trick.

regards, Thanos

Thu Trần Aroma
Contributor
July 8, 2017

Thank you for your support.

It works like magic!

Edward Greathouse
Contributor
August 21, 2018

This script is similar to what I want to do, except I want to set the reporter to a specific user depending if the custom field value equals 'Support'. Here is what I have:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.user.ApplicationUser

def issue = issue as MutableIssue

def cf = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("Origin")
def cfValue = issue.getCustomFieldValue(cf)

if (cfValue == 'Support') {
issue.setReporter('sthomson@ivansinsurance.com')
}
else {
log.debug "Did not update the reporter because custom field value was null"
}

 

However, I get the following error on the "setReporter()" line:

com.atlassian.jira.issue.MutableIssue#setReporter(java.lang.String). Please check if the declared type is right and if the method exists.

Any help would be greatly appreciated!

Edward Greathouse
Contributor
August 21, 2018

*Additional Info*

The script will run, but it is not logging the string, nor is it setting the reporter.

0 votes
Nina Zolotova
Contributor
July 18, 2018

@Thanos Batagiannis [Adaptavist], thank you, your script helped me a lot!

TAGS
AUG Leaders

Atlassian Community Events