How to set the Eclipse date variable format?

code-templates, date, eclipse, variables

Solution

Update February 2016: bug 75981 is officially fixed! See Jmini's answer below

Update July 2015, 6 years later:

The bug mentioned below seems fixed in Eclipse 4.x. Eric Wang comments below:

@date ${id:date('YYYY-MMM-dd')} ${time} 

this give me English datetime format in eclipse 4.

Original Answer 2009 Eclipse 3.x

Argh! There is a long standing bug just for that: bug 75981

The `${date}` variable could be enhanced to accept an argument (similar to other parameterizations added in 3.3M1), e.g. `${d:date(format)}`, where `format` is a pattern for `SimpleDateFormat`.

The only alternative would be to modify the class `SimpleTemplateVariableResolver` (as described in this thread), from the package `org.eclipse.jface.text.templates`. (You have here an example of such an extension).

This thread mentions the sources where you can find the class.

\eclipse\plugins\org.eclipse.platform.source_3.1.0\src\org.eclipse.text_3.1.0\src.zip

Example:

public static class Date extends SimpleTemplateVariableResolver {
/**
* Creates a new date variable
*/
public Date() {
super("date", TextTemplateMessages.getString("GlobalVariables.variable.description.date")); //$NON-NLS-1$ //$NON-NLS-2$ }

protected String resolve(TemplateContext context) {
    //return DateFormat.getDateInstance().format(new java.util.Date());
    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    return df.format(new java.util.Date()); } }

Problem

How can I set the format for the ${date} variable which can be used in Eclipse templates?

Original source