如何在<p:inplace> </p:inplace>内的primefaces日历中仅显示日期“dd / MM / yyyy”

时间:2014-08-21 12:36:59

标签: ajax jsf primefaces calendar

我试图在此代码中仅显示日期,月份和年份,但是当我输入初始日期并单击原位显示的保存按钮时,显示日期为:“Thu Aug 21 00:00:00 BOT 2014" 我只想显示:“2014年8月21日”或“2014年8月21日”

这是代码:

<p:outputLabel value="#{msg['startDate']}" for="inputInitialDate"/>
<p:inplace id="inputInitialDate" editor="true" emptyLabel="#{msg['period.addInitialDate']}" 
                               disabled="#{periodManager.currentPeriod.state == 'DUE'}">
    <p:ajax event="save" listener="#{periodManager.addDateToPeriod}" update="formContainer"/>
    <p:calendar value="#{periodManager.currentPeriod.initialDate}" pattern="dd/MM/yyyy"
                                    widgetVar="calendarInputWidget"/>
</p:inplace>
<p:message for="inputInitialDate"/>

1 个答案:

答案 0 :(得分:5)

<f:convertDateTime>添加到日历中,重复pattern<p:calendar>自己的pattern属性确实最常被误解。它仅适用于应在日历选择弹出窗口中显示的模式,而不适用于输出模式。

<p:calendar ... pattern="dd/MM/yyyy">
    <f:convertDateTime pattern="dd/MM/yyyy" />
</p:calendar>

或者,多一点干。

<p:calendar ... pattern="dd/MM/yyyy">
    <f:convertDateTime pattern="#{component.pattern}" />
</p:calendar>