【问题标题】:How to set the Eclipse date variable format?如何设置 Eclipse 日期变量格式?
【发布时间】:2009-07-15 14:21:41
【问题描述】:

如何设置可在 Eclipse 模板中使用的 ${date} 变量的格式?

【问题讨论】:

    标签: eclipse date variables code-templates


    【解决方案1】:

    2016 年 2 月更新:bug 75981 已正式修复!
    Jminianswer below


    2015 年 7 月更新,6 年后:

    下面提到的错误似乎已在 Eclipse 4.x 中修复。
    Eric Wang comments below:

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

    这给了我 Eclipse 4 中的英文日期时间格式。


    原始答案 2009 Eclipse 3.x

    啊!有一个长期存在的错误:bug 75981

    ${date} 变量可以被增强以接受一个参数(类似于其他 3.3M1 中添加的参数化),例如${d:date(format)},其中formatSimpleDateFormat 的模式。

    唯一的选择是修改包org.eclipse.jface.text.templates中的类SimpleTemplateVariableResolver(如this thread中所述)。 (你这里有一个example of such an extension)。

    这个thread mentions 是你可以找到课程的来源。

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

    例子:

    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()); } }
    

    【讨论】:

    • @date ${id:date('YYYY-MMM-dd')} ${time} 这给了我 Eclipse 4.5 中的英文日期时间格式。
    • @EricWang 感谢您的更新。我已经相应地更新了答案。
    • 更新对我不起作用。我使用我的自定义格式替换了 jar 中的 bit.ly/1NzZfJs 类。
    • 使用 Eclipse 4.6。这对我有用。我还使用 SimpleDateFormat 来包含时间: ${d:date('yyyy-MM-dd HH:mm:ss')}
    【解决方案2】:

    您可以告诉 Eclipse 使用与您的操作系统不同的特定语言环境。 Eclipse 3.5(64 位)不使用 MacOS X 区域设置。以德国为国家/地区的 MacOS X 英文安装语言提供了错误的日期格式。

    当您在 eclipse.ini 中附加以下行时,您可以为您的 Eclipse 安装修复它:

    -Duser.language=de
    -Duser.region=DE
    

    【讨论】:

    • 非常感谢!也为 fi/FI 工作过!
    【解决方案3】:

    我已经用 Eclipse Neon M5 修复了 Bug 75981。您可以在此处下载此里程碑版本:

    http://www.eclipse.org/downloads/index-developer.php

    ... 或等到 2016 年 6 月正式发布霓虹灯。

    这里简要介绍一下它的工作原理:

    • 和以前一样,您可以使用不带参数的日期变量。示例:${date}
    • 您可以使用带有附加参数的变量。在这种情况下,您需要命名变量(因为您没有在其他地方重用日期,所以变量的名称无关紧要)。示例:${mydate:date}
      • 第一个参数是日期格式。示例:${d:date('yyyy-MM-dd')}
      • 第二个参数是语言环境。示例:${maDate:date('EEEE dd MMMM yyyy HH:mm:ss Z', 'fr')}

    有关此功能的更多信息,请访问我的博客:Bug 75981 is fixed!

    【讨论】:

    • 干得好! +1。我已经在我的文章中引用了您的答案,以获得更多可见性。
    • 可以在 ${time} 中使用类似的格式选项吗?
    • 啊,看来我可以在 SimpleDateFormat 中包含时间格式,所以我什至不需要使用 ${time}。
    • @FelixBembrick 是的,我还使用 SimpleDateFormat 作为日期时间:${d:date('yyyy-MM-dd HH:mm:ss')}
    【解决方案4】:

    对于最近遇到这个问题的人(比如我)的补充信息:

    对于 ISO 8601 日期格式,可以使用语言设置 fr-CA。

    【讨论】:

    • 将此行附加到您的 eclipse.ini:-Duser.language=fr-ca,则日期格式将为“2014-08-07”。
    • 小缺点:在一些地方,您也可以在 GUI 中获得法国日期格式。示例:比较本地历史记录中的 14-10-27(评论日期)。
    猜你喜欢
    • 2017-03-09
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 2021-07-01
    • 2014-06-02
    • 1970-01-01
    相关资源
    最近更新 更多