【问题标题】:f:convertDateTime displays wrong hour [duplicate]f:convertDateTime 显示错误的时间 [重复]
【发布时间】:2013-02-28 07:08:17
【问题描述】:
我的数据库中有日期时间。当我尝试显示它时,“小时”是错误的(多 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,但它似乎不起作用。
【问题讨论】:
标签:
jsf
datetime
primefaces
【解决方案1】:
在您的web.xml 中尝试粘贴这些行:
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
【解决方案2】:
您正面临时区问题...
我解决了这个问题,从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" />
这并不花哨,但它确实有效。
一个更好的解决方案你可以找到它here通过将此代码添加到 de web.xml
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>