Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How to fetch the logged user timezone in groovy

I am trying to set the datetime field for an issue by picking the value from another issue.

Problem I am facing is that I am able to set the value but with different timezone. Is there any way I can set the time zone to the loggedin user.

I am trying with below code

import com.atlassian.jira.timezone.TimeZoneManager;
import java.util.TimeZone

TimeZone timeZone = timeZoneManager.getLoggedInUserTimeZone();

simpleDateFormat.setTimeZone(timeZone);

 

I am getting groovy.lang.MissingPropertyException: No such property: timeZoneManager for class

 

Can anyone help in resolving this

1 answer

1 accepted

1 vote
Answer accepted
/* -the old API has changed, 
regrettably this is an old question
but I hope my answer helps other people
*/

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.timezone.TimeZoneManager

// -if you need the base TZ object

def userTimeZone = ComponentAccessor.getComponent(TimeZoneManager).getLoggedInUserTimeZone()

// -if you need the TZ string to pass to a date

def userTimeZoneValue = ComponentAccessor.getComponent(TimeZoneManager).getLoggedInUserTimeZone()
.getProperties()['lastRule'].getProperties()['ID'].toString()

// -sample usage

def date = new Date().format('yyyy-MM-dd hh:mm:ss', TimeZone.getTimeZone(userTimeZoneValue))

// -check the output

return [userTimeZoneValue, date]

/* -this URL helped me  https://innovalog.atlassian.net/wiki/spaces/JMWE/pages/164495395/Code+snippet+to+fetch+the+current+user+s+time+zone
*/

Thanks, that was helpful

Like AF likes this

Hi @AF  - I tried with the given snippet, It works to fetch the date but not getting UserTimeZoneValue. Any help would be appreciated. Thank you! 

Hi Subham,

Sorry that I just saw this. I tested it and still works for me.

If you change the return statement to this:

return ComponentAccessor.getComponent(TimeZoneManager)
.getLoggedInUserTimeZone().getProperties()

Do you get any output? 

If yes, does it contain any property named like "lastRule" or similar? 

If not, what version of the Scriptrunner plugin and Jira are you running?

Also, please check that your user profile (in the UI) is set to your desired TimeZone. I haven't tested it for one which is unset. I am not sure that default values would behave the same as custom ones.

Hope it helps.

Suggest an answer

Log in or Sign up to answer
TAGS

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you