首页 > 解决方案 > p:calendar 时间滑块丢失小时和分钟

问题描述

我面临的问题是,当我尝试更改primefaces 6.1日历中的时间小时滑块时,我失去了大部分时间。大多数时候只检测到一小时的变化。

我已经研究了以下内容。 启用 Ajax 时损失小时/分钟

日历代码。(这段代码已经写好了,我只需要修复滑动问题)

<p:calendar widgetVar="collectedDate" tabindex="50"
                            value="#{caseController.selectedCase.caseCollectedDate}"
                            converter="DateConverter"
                            converterMessage="Please enter valid date time format" pattern="MM/dd/yy HH:mm"
                            maxdate="#{viewUtilityBean.currentDate}">
    <p:ajax event="dateSelect" update="@this,:growl"
            listener="#{caseController.onDateCollectedSelect()}"/>
</p:calendar>

日期转换器

Date date1 = null;
    try {
        if (!value.contains(":")) {
            date1 = new SimpleDateFormat("MM/dd/yy").parse(value);
            value = new SimpleDateFormat("MM/dd/yy HH:mm").format(date1.getTime());
            date1 = new SimpleDateFormat("MM/dd/yy HH:mm").parse(value);
        } else {
            date1 = new SimpleDateFormat("MM/dd/yy HH:mm").parse(value);
        }

    } catch (ParseException e) {
        e.printStackTrace();
    }  

如果日历中的当前时间是 15:00,我将滑块拖动到 12:00。它显示的更新时间是 14:00,而它应该显示 12:00。

有什么办法,我可以在选择整个日期和时间后调用这个 ajax。不是在滑块的每一个小变化之后。

这是我们在应用程序中使用的时区。

<context-param>
     <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
     <param-value>true</param-value>
</context-param>

标签: javadatetimejsfprimefaces

解决方案


推荐阅读