Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,365,184
Community Members
 
Community Events
168
Community Groups

I want a Scripted Field which will show only time in UTC bypassing the User's local timezone

Want to ByPass the date time functionality of jira and create a date time type scripted field which will show the UTC value onn all users profile no matter what timezone he is in.

using date time calculated field will also work if someone has the formula ready.

Thanks in advance,

Sumit

3 answers

1 accepted

0 votes
Answer accepted

Hi Nic,

I was able to write a script by myself

**************************************************************

import com.atlassian.jira.component.ComponentAccessor;

import com.atlassian.jira.issue.CustomFieldManager

import com.atlassian.jira.issue.fields.CustomField

import org.apache.log4j.Level

import org.apache.log4j.Logger

import java.text.SimpleDateFormat;

import com.atlassian.jira.issue.IssueManager;

Logger log = Logger.getLogger("********* Chaging Field **********");

log.setLevel(Level.DEBUG)

//log.debug("##########################################################".toString())

//log.debug("##########################################################".toString())

//log.debug("##########################################################".toString())

ComponentAccessor comAcc=new ComponentAccessor()

CustomFieldManager cfm = comAcc.getCustomFieldManager()

IssueManager issueManager = comAcc.getIssueManager()

CustomField time = cfm.getCustomFieldObject('customfield_10601') // id to be changed

timeValue=issue.getCustomFieldValue(time)

// log.debug("timeValue ::: ${timeValue}".toString())

if(timeValue!=null){

//log.debug("Time in UTC is:::: Not Null".toString())

SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");

Date date = sdf.parse("${timeValue}");

sdf.setTimeZone (TimeZone.getTimeZone ("Etc/GMT"));

UTCtime=sdf.format(date)

return UTCtime

//log.debug("Time in UTC is:::: ${UTCtime}".toString())

}

else {

return null

}

****************************************

Actually, I wanted to bypass the time mechanism of jira and show the time in UTC for one custom field.

As of now it is working fine , I will comment back if any bug is observed

thanks a lot for looking into the question.

Regards,

Sumit

1 vote

Could you explain what you are trying to display and where?

I understand you want to show the UTC value of a date/time, but what actual date/time do you need? The current time? Issue created? Updated? A custom field?

You also talk about "users profile" - fields belong to issues, not users, but it's not clear why you mention the profile.

Actually, Groovy provides a very handy enhancement to Date class, the Date.format() method.

So, you can simply use following snippet to have the same effect:

import com.atlassian.jira.component.ComponentAccessor

def cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObject('customfield_10001') // id to be changed
def time = issue.getCustomFieldValue(cf) as Date return time?.format("yyyy-MM-dd HH:mm:ss", TimeZone.getTimeZone("Etc/GMT"))

The Date.format() documentation also shows how to format your date representation.

Suggest an answer

Log in or Sign up to answer
TAGS

Atlassian Community Events