SWT DateTime 不考虑语言环境

SWT DateTime doesn't take into account the locale

是否可以更改 DataTime 小部件显示日期的格式?问题是,即使我将语言环境设置为使用欧洲格式 (dd/mm/yyyy),我仍然有 mm/dd/yyyy 格式的 DateTime 小部件。

编辑:关于 SO 已经有类似的问题 "How to change the format of DateTime",他们得到了类似 "change the locale and DateTime will adapt" 的回答。我的问题是关于更改语言环境对 DateTime 小部件没有任何影响的情况。可能出了什么问题?是否有任何其他强制格式更改的解决方案?

在 运行 对 Linux 进行了一些测试后,我可以确认 DateTime 小部件似乎没有使用 OS 的语言环境。这似乎是一个错误,您应该报告它。

同时你可以做的是使用 Nebula's CDateTime 支持 Java Locales:

public static void main(String[] args)
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Whosebug");
    shell.setLayout(new FillLayout());

    Locale.setDefault(Locale.GERMAN);
    CDateTime cdt = new CDateTime(shell, CDT.DATE_SHORT);
    cdt.setSelection(new Date());

    Locale.setDefault(Locale.ENGLISH);
    cdt = new CDateTime(shell, CDT.DATE_SHORT);
    cdt.setSelection(new Date());

    shell.pack();
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}