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 Locale
s:
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();
}
是否可以更改 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 Locale
s:
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();
}