Time Zones in JIRA

JIRA allows every user to specify his own timezone through user profile since version 4.4.

JIRA Time zones

If you look at the above diagram at any time we have to consider 3 different time zone. Theoretically users computer/browser’s time zone may also be different than user’s time zone defined in profile page. In that case JIRA will inform user about this mismatch and request user to fix. If he does not any REStFul API that accepts time zone as milliseconds since 1970 convention will fail. As a best practice web service APIs should accept time related information in textual format. But this also has formatting problems and makes using API a little more difficult but it is better than processing wrong information.

When an action is performed by a user, timestamp is converted to JIRA’s own timezone setting and recorded in the database. Later when needed this timezone is also converted to requesting user’s (possibly a different user than who performed the action) timezone. This cause everyone to see different time for the same event. This is the same for work log entries. Lets see with an example. Following two screenshots are for the same work log entry.
In the first one we see how it is displayed for a user with time zone “(GMT+02:00) Istanbul”:

In the second one we see how it is displayed for a user with time zone “(GMT-11:00) Midway”:

As you can see they see the same work log entry as if it is performed on different days. For the perspective of the user actually it is performed on different days. But the question is, “On which day we should place this work log entry for a timesheet?”
Since timesheets are mostly used for cost or billing calculations the day on which a work is performed is very important. For example some companies may be paying more for works performed on weekends. If a user did not performed the issue on the weekend it should not be reported as performed on weekend just because of time zone of the user requesting the timesheet report is different from time zone of work log author.

In Worklog PRO Timesheet for JIRA we display this work log on the same day work log author reported. Not with the time zone of the user requesting the timesheet or not with the time zone of the server. This is also compliant with how timesheets are reported by another popular JIRA Timesheet tool. But these two plugins are radically different in terms of how work logs are stored in JIRA.
Lets start with the easy one, Worklog PRO Timesheet. It just stores work logs with JIRA’s own convention so its work logs are compliant with JIRA. Later if you decide to uninstall the plugin all work logs will be as if they are entered from JIRA’s own work log entry dialog.
Other timesheet solution stores work log entries normalized with JIRA Server’s time zone. As a result if you look at the same work log with this tools own “work log panel” you will see different date and times than it is displayed by JIRA’s own “work log panel”. Recommended solution is to disable JIRA’s own work log panel. But later if you decide to uninstall the plugin, you will need to re-enable it and it will continue to show incorrect dates forever.