f:convertDateTime显示错误的小时

时间:2013-03-12 16:30:32

标签: jsf datetime primefaces

我的数据库中有日期时间。当我尝试显示它时,“小时”是错误的(6小时以上)。

DB          2013-03-12 10:05:49
Display     2013/03/12 16:05:49

我正在使用primefaces,这是代码:

<p:column id="fecha" headerText="Fecha" style="text-align: center">
  <h:outputText value="#{con.fecha}" >
    <f:convertDateTime pattern="yyyy/MM/dd HH:mm:ss"  />
  </h:outputText>
</p:column>

我尝试使用模式HH,但它似乎不起作用。

2 个答案:

答案 0 :(得分:6)

web.xml尝试粘贴这些行:

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

答案 1 :(得分:2)

您正面临TimeZone问题......

我解决了这个问题,从here获取timeZone并更改f:convertDateTime,如下所示:

<f:convertDateTime pattern="yyyy/MM/dd HH:mm:ss"  />

<f:convertDateTime pattern="yyyy/MM/dd HH:mm:ss" timeZone="America/Montevideo" />

这不是花哨但有效。

通过将此代码添加到de web.xml

,您可以找到更好的解决方案here
<context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
</context-param>