(Quick Reference)



Formats java.util.Date, java.time.LocalDate, and java.time.LocalDateTime instances using the patterns defined by the SimpleDateFormat class.


<g:formatDate format="yyyy-MM-dd" date="${date}"/>
<g:formatDate date="${date}" type="datetime" style="MEDIUM"/>
<g:formatDate date="${date}" type="datetime" style="LONG" timeStyle="SHORT"/>
<g:formatDate date="${date}" type="time" style="SHORT"/>



  • date (required) - The date object to format. It could be the instance of java.util.Date, java.time.LocalDate, java.time.LocalDateTime.

  • format (optional) - The formatting pattern to use for the date, see SimpleDateFormat

  • formatName (optional) - Look up format from the default MessageSource / ResourceBundle (i18n/*.properties file) with this key. If format and formatName are empty, format is looked up with ‘default.date.format’ key. Defaults to 'yyyy-MM-dd HH:mm:ss z' if the key not specified

  • type (optional) - The type of format to use for the date / time. format or formatName aren’t used when type is specified. Possible values: 'date' - shows only date part, 'time' - shows only time part, 'both'/'datetime' - shows date and time

  • timeZone (optional) - Sets the time zone for formatting. See TimeZone class.

  • locale (optional) - Force the locale for formatting.

  • style (optional) - Use default date/time formatting of the country specified by the locale. Possible values: SHORT (default), MEDIUM, LONG, FULL . See DateFormat for explanation.

  • dateStyle (optional) - Set separate style for the date part.

  • timeStyle (optional) - Set separate style for the time part.

While using java.time.LocalDate as the date value please specify the format attribute as the default (yyyy-MM-dd HH:mm:ss z) would fail to format because java.time.LocalDate does not have any time format.