Calculated (Scripted) Date custom field type

This custom field is similar to the Calculated Date/Time field, but without the time part. This can be typically used to display and search just by the date which makes it easier for statistics, and more importantly, handle local time zone better showing the right date irrespective of the time zone (just like Jira Standard field Due date)

Adding a Calculated Date custom field type

To add a Calculated Date custom field type to your instance:

  1. Log in to JIRA as an administrator.

  2. Go to the Administration icon and click on it.

  3. Click on Issues - > Custom fields.

  4. Click on Add custom field.

  5. Click on Advanced in the left panel.

  6. Locate Calculated Date Field type and select it.

  7. Click on Next.

  8. Provide a name for the custom field

  9. You can optionally provide a description for the custom field.

  10. Click on Create

  11. Associate the custom field to the appropriate screens.

  12. Locate the custom field in the Custom fields administration page and click on the cog wheel.

  13. Click on Configure and create a formula (explained below) for the field.

  14. You can create multiple contexts if you need to associate different formulas with particular projects or issue types.

  15. Perform a re-index as prompted by JIRA.



Configuring the Groovy formula for a Calculated Date custom field type

To write a formula for the Calculated Date custom field type;

  1. Locate the custom field on the Custom Fields administration page.

  2. Click on the cogwheel and click on Configure

  3. Click on Edit Groovy Formula

  4. In the editor write a Groovy script that returns a String containing a date in the format specified in your Jira settings or a date object. Also, you can test your script against any issue using the Groovy script tester.

  5. Click on Save.

As documented on the Expected Value tab of the Groovy editor help, the Groovy formula must return either:

  • A String representing a date or 

  • A Date object or

  • null

Examples of Groovy formula for a Calculated Date custom field:

  • A Groovy expression returning a String containing a date. For example,

    1 "11/Apr/20"
  • A Groovy expression returning a date object. For example, the current date

    1 new Date()
  • A Groovy expression that references any field of the issue that returns a java.util.Date. For example, referring the issue updated date

    1 issue.get("updated")
  • A Groovy expression that includes arithmetic operators as well as any other Groovy operator, and Groovy method calls. For example, adding a specific number of days to the issue creation date.

    1 issue.get("created") + 5

Customizing the formatting of the Calculated Date custom field value

By default, the Calculated Date custom field type value is displayed using Jira's default date format (if you leave the Date Format to Default). However, you can customize it. To select a format for a Calculated Date custom field type value;

  1. Locate the custom field on the Custom Fields administration page.

  2. Click on the cogwheel and click on Configure

  3. Click on Edit Date Format.

  4. Select a format from the Date format drop-down.

  5. Click on Save.

Customizing the formatting of the Calculated Date custom field value in the List views

By default, the Calculated Date custom field type value is displayed using Jira's default date format (if you leave the Date Column Format to Default) in the tabular views. However, you can customize it. To select a format for a Calculated Date custom field type value in the List views;

  1. Locate the custom field on the Custom Fields administration page.

  2. Click on the cog wheel and click on Configure

  3. Click on Edit Date Column Format.

  4. Select a format from the Date format drop-down.

  5. Click on Save.

For example, if you select the RELATIVE_WITHOUT_TIME (Just now) option in the Edit Date Format/Edit Date Column Format, and the Groovy formula is new Date() - 1, then the value will be formatted to Yesterday.

Search template

When creating a Calculated Date custom field type, you can configure the Search template as 

  • Date range picker - Allows searching for a date that is between two other dates

  • Date range searcher (Statistics by day/week/month/quarter/year) - Allows searching for a date that is between two other dates. Supports Statistics Gadgets, grouping values by day/week/month/quarter/year respectively.

Using these searchers you will be able to search issues within a date range of values for that custom field. The default search template is the Date range searcher (Statistics by day). If you select “None” for the searcher, then you won’t see any reference to this field in the Issue Navigator search fields. Note that changing a custom field searcher requires a re-index

Date range searcher (Statistics by day/week/month/quarter/year) are custom statistics compatible searchers provided by JMCF that allow Date type custom fields of Jira and JMCF to be used in the statistics gadgets. See here for more information. 

Customizing the display of the Calculated Date custom field value

You can define a velocity template that will return the Html representation of the calculated custom field. Leave it empty to use the default template. 

To write a velocity template for a Calculated Date custom field type value;

  1. Locate the custom field on the Custom Fields administration page.

  2. Click on the cog wheel and click on Configure

  3. Click on Edit Velocity Template.

  4. Input the template.

  5. Click on Save.

You can use the following Velocity variables in the template:

  • $value: the raw field value, a Date object

  • $formattedValue: the field value formatted according to the field configuration above

  • and other variables described on this page

For example:

1 2 3 <div style="border: dashed"> $formattedValue </div>

displays the date in a dashed box.

Displaying the Calculated Date custom field type on Transition and Edit screen

The Never show on Transition and Edit screens option controls whether the calculated Date custom field can appear on transition and edit screens. If you select this option, the field will not be visible on any Edit or Transition screen, even if it is added to the screen.

Accessing the Calculated Date custom field value from other Groovy scripts

You can access this field using any of the following getters of the Issue interface

The easiest is to use the “Issue fields” tab of the Groovy editor in the custom field configuration that shows examples on how to access the field.