SWT DateTime没有考虑区域设置

时间:2016-09-29 15:18:28

标签: java linux swt eclipse-rcp

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

编辑:有关SO的类似问题"如何更改DateTime的格式"他们的回答类似于"改变语言环境,DateTime将适应"。我的问题是关于更改语言环境对DateTime小部件没有任何影响的情况。可能有什么问题?是否还有其他强制格式更改的解决方案?

1 个答案:

答案 0 :(得分:1)

在Linux上运行一些测试后,我可以确认DateTime窗口小部件似乎没有使用操作系统的区域设置。这似乎是一个错误,你应该报告它。

在此期间你可以做的是使用支持Java Locale的{​​{3}}:

public static void main(String[] args)
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    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();
}