我正在尝试将CDateTime用作我的swt表控件的单元格编辑器。当我运行一个独立的CDateTime示例(来自here)时,它是这样的:
CDateTime是这样创建的:
final CDateTime cdt = new CDateTime(shell, CDT.DROP_DOWN | CDT.DATE_SHORT | CDT.COMPACT);
cdt.setSelection(new Date());
请注意导致下拉菜单的图标-它看起来像一个日历。您可以看到月份/年份,并且标题的左上角有2个箭头按钮和一个“今天”按钮。选择日期后,该日期也会正确写入文本框中。
但是,当我尝试将其添加为单元格编辑器时,其外观如下所示:
请注意,图标不同,标题部分也不同。另请注意,我是如何选择一个日期并获得这个奇怪的数字的-一个月有32个! -在文本框中。当弹出窗口消失时,日期是正确的,但是这种奇怪的行为看起来很奇怪并且令人担忧。
我是这样创建CDateTime的:
final int style = getStyle() | CDT.DATE_SHORT | CDT.DROP_DOWN | CDT.COMPACT ;
this.dateTime = new CDateTime(parent, style);
this.dateTime.setPattern("mm/dd/yyyy");
我究竟做错了什么?
最佳答案
我知道这是一个老问题,但这是答案:您设置的模式是错误的,“mm”代表分钟。相反,您可以使用“MM”来获取月份:
dateTime.setPattern("MM/dd/yyyy");
关于java - 星云CDateTime中的奇怪行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29945592/