在DateTimeItem(SmartGWT)中显示秒数

时间:2013-07-12 11:25:33

标签: smartgwt

在阅读SmartGWT DateTimeItem: accept 12 hour format时,我发现使用TimeDisplayFormat提供了显示秒数的选项,例如dateTimeItem.setTimeFormatter(TimeDisplayFormat.TOPADDED24HOURTIME);嗯,但是日期的显示没有变化。

由于代码指出TimeDisplayFormat已被弃用,而且应该使用DateDisplayFormatter,我尝试了dateTimeItem.setDateFormatter(DateDisplayFormat.TOSERIALIZEABLEDATE);,但仍然没有变化。

该值通过dateTimeItem.setValue(myDate);

设置

知道我必须设置DateTimeItem以便显示秒数吗?

我正在使用SmartGWT 3.1

PS:我也试过了dateTimeItem.setDisplayFormat(DateDisplayFormat.TOSERIALIZEABLEDATE);,但仍然没有改变

2 个答案:

答案 0 :(得分:0)

似乎DateDisplayFormat.TOSERIALIZEABLEDATE在SmartGWT 3.x中遇到了一些问题。

dateTimeItem.setDateFormatter(DateDisplayFormat.TOSERIALIZEABLEDATE);在SmartGWT 4.0中正常运行。

dateTimeItem.setDisplayFormat(DateDisplayFormat.TOSERIALIZEABLEDATE);即使在4.0中也没有提供所需的行为,可能是由于默认的系统范围格式设置。

您应该能够使用值格式化程序作为3.0中的变通方法。

dateTimeItem.setEditorValueFormatter(new FormItemValueFormatter() {
    public String formatValue(Object value, Record record, DynamicForm form, FormItem item) {
        if (value != null && value instanceof Date) {
            return DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss").format((Date) value);
        }
        return null;
    }
});

检查DateItem.setEditorValueFormatter,因为您可能还需要设置输入格式等。

答案 1 :(得分:0)

您可以在dateitem timeSheetDate.setShowPickerTimeItem(true)中使用以下代码; timeSheetDate.setTimeFormatter(TimeDisplayFormat.TOSHORTTIME);你也可以使用timeSheetDate.setTimeFormatter(TimeDisplayFormat.TOTIME);