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

    </h:outputText>
</rich:column>

使用上面的代码,我从数据库中得到的日期是 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>

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

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

提前谢谢。

4

1 回答 1

1

您应该为组件添加合适timeZone的属性convertDateTime。以我的区域为例

<f:convertDateTime pattern="dd-MM-yyyy" timeZone="Asia/Calcutta" />

笔记:

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

于 2012-12-13T11:31:39.850 回答