在dateItem dynamicform smartgwt中显示正确的dateformat

时间:2017-06-26 13:32:53

标签: date smartgwt date-formatting

我正在从网格中取一个记录来填充动态表单中的某个项目。问题是我无法以正确的格式显示表单的日期,它会一直显示在网格中,而且无论我做什么格式化日期都被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}我无法理解为什么......

1 个答案:

答案 0 :(得分:1)

取消注释此行应该有效:

dataTrade.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);

添加此行后,日期显示的格式正确。此外,我能够以dd / MM / yyyy格式编辑表格和输入日期。