我正在从网格中取一个记录来填充动态表单中的某个项目。问题是我无法以正确的格式显示表单的日期,它会一直显示在网格中,而且无论我做什么格式化日期都被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
,但是当我加载页面时,格式仍为{{1}我无法理解为什么......
答案 0 :(得分:1)
取消注释此行应该有效:
dataTrade.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
添加此行后,日期显示的格式正确。此外,我能够以dd / MM / yyyy格式编辑表格和输入日期。