如何在jsf页面上设置日期模式?

pio*_*eer 5 jsf jsf-2

<rich:column>
    <f:facet name="header">
          <h:outputText value="Expiry Date"/>
    </f:facet>
    <h:outputText value="#{item.endDate}">

    </h:outputText>
</rich:column>
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我从数据库得到的日期是2012-09-03 00:00:00.0

现在,我想将日期模式设置为dd-MM-yyyy.

所以我要求的输出是03-09-2012.

但使用下面的代码(设置模式后)

<rich:column>
     <f:facet name="header">
         <h:outputText value="Expiry Date"/>
     </f:facet>
     <h:outputText value="#{item.endDate}">
          <f:convertDateTime pattern="dd-MM-yyyy"  />
     </h:outputText>
</rich:column>
Run Code Online (Sandbox Code Playgroud)

我得到的输出是02-09-2012

无论数据库中的日期是什么,它都会显示输出减少一天.

提前谢谢.

pra*_*eth 1

您应该timeZoneconvertDateTime组件添加合适的属性。以我所在区域为例

<f:convertDateTime pattern="dd-MM-yyyy" timeZone="Asia/Calcutta" />
Run Code Online (Sandbox Code Playgroud)

笔记:

您可以用来java.util.TimeZone.getDefault().getID()获取您当前的时区 ID。