How can I set the format for the ${date} variable which can be used in Eclipse templates?
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)}
, whereformat
is a pattern forSimpleDateFormat
.
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()); } }
You could tell Eclipse to use a specific locale different from that of your operating system. Eclipse 3.5 (64 bit) doesn't use the MacOS X region setting. MacOS X english installation language with Germany as country provides a wrong date format.
You can fix it for your Eclipse installation when you append following lines to your eclipse.ini:
-Duser.language=de
-Duser.region=DE