首页 > 解决方案 > 2020 年的 JSF primefaces convertDateTime 模式年份不正确

问题描述

2020 年模式问题

在日历弹出窗口中,它按原样选择,但在选择时设置为 2020 年 3 月 29 日

该值在数据库中存储为 29-MAR-20

date2 的数据类型是数据库中的 DATE

但是 outputText 值显示为 03/29/ 0020

正确的输出文本应为 03/20/ 2020



<h:form id="form">
    <p:growl id="msgs" showDetail="true" skipDetailIfEqualsSummary="true" />

    <h:panelGrid columns="2" cellpadding="5">

        <p:outputLabel for="popup" value="Popup:" />
        <p:calendar id="popup" value="#{calendarView.date2}" />

    </h:panelGrid>

    <p:commandButton value="Submit" update="msgs" action="#{calendarView.click}" icon="pi pi-check" />

    <p:dialog modal="true" resizable="false" header="Values" widgetVar="dlg" showEffect="fold">
        <p:panelGrid id="display" columns="2" columnClasses="label,value">

            <h:outputText value="Popup:" />
            <h:outputText value="#{calendarView.date2}">
                <f:convertDateTime pattern="MM/dd/yyyy" />
            </h:outputText>

        </p:panelGrid>
    </p:dialog>
</h:form>   

web.xml


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

测试日期选择 6/27/99

该值在数据库中存储为 27-JUN-99

输出显示为预期/正确输出 - 1999 年 6 月 27 日

标签: datetimejsfprimefacesformatconverters

解决方案


推荐阅读