如何在<p:inplace />的primefaces日历中仅显示日期"dd/MM/yyy"

Jor*_*ila 1 ajax jsf calendar primefaces

我试图在这段代码中只显示日期,月份和年份,但是当我把初始日期和我点击内部的保存按钮时,显示日期如此:"Thu Aug 21 00:00:00 BOT 2014"I只想显示:"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"/>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 5

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

<p:calendar ... pattern="dd/MM/yyyy">
    <f:convertDateTime pattern="dd/MM/yyyy" />
</p:calendar>
Run Code Online (Sandbox Code Playgroud)

或者,多一点干.

<p:calendar ... pattern="dd/MM/yyyy">
    <f:convertDateTime pattern="#{component.pattern}" />
</p:calendar>
Run Code Online (Sandbox Code Playgroud)

  • 这些模式基于`SimpleDateFormat`规则,在[javadoc](http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)中非常清楚地概述了这些规则.使用"MMM"表示3个字符的月份缩写,使用"MMMM"表示完整的月份名称.对于与当前问题无关的新问题,请按右上方的"[提问]"按钮. (2认同)