<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。

因此,我需要的输出是2012年3月9日。

但是使用下面的代码(在设置模式之后)
<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>

我得到的输出是2012年2月9日

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

预先感谢。

最佳答案

您应该将适当的timeZone属性添加到convertDateTime组件。
例如在我的区域

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

笔记:

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

关于jsf - 如何在jsf页面上设置日期模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13857888/

10-08 23:02