我正在为录制录制,以在动态图中填充某些项目。问题是我无法以正确的形式显示正确格式的日期,它一直显示在网格中,而我所做的任何格式化日期都被SmartGWT忽略了。我有点困惑。下面您会找到我的代码。谁能帮我吗?
dataTrade = new DateItem();
dataTrade.setTitle(Nove.getInstance().getConstants().dataTrade());
dataTrade.setName(RecordEditMovTitUploadDS.DATA_TRADE);
dataTrade.setWidth(100);
dataTrade.setAlign(Alignment.LEFT);
dataTrade.setUseTextField(true);
String dataT = movTitRecord.getAttribute(ListMovTitByValCodTitDetailDS.DATA_TRADE);
DateTimeFormat dateTimeFormat = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date dateTr = null;
try{
dateTr = dateTimeFormat.parse(dataT);
} catch(IllegalArgumentException e){
SC.say("Couldn't parse date");
}
DateTimeFormat dateTimeFormat2 = DateTimeFormat.getFormat("dd/MM/yyyy");
String dateTra= dateTimeFormat2.format(dateTr);
//dataTrade.setDisplayFormat(DateDisplayFormat.TOEUROPEANSHORTDATE);
//dataTrade.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
dataTrade.setInputFormat("dd/MM/yyyy");
dataTrade.setDefaultValue(dateTra);
要在调试中更具体地说明日期的格式正确,当我将值传递给setDefaultValue
时,它是dd/MM/yyyy
的,但是当我加载页面时,格式仍然是yyyy-MM-dd HH:mm:ss.SSS
,我不明白为什么...
删除这一行应该有效:
dataTrade.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
添加此行后,日期以正确的格式显示。我也能够以格式DD/mm/yyyy编辑表单和输入日期。