JSF日期转换器默认为UTC时区。但您的日期显然是使用EEST时区存储的,该时区比UTC(准确地说是GMT+3)晚了几个小时。当使用UTC时区对这些日期进行积分时(默认情况下JSF是这样做的),您将获得时间上的小时数,从而表示前一天。
Date的DB值为:
04-OCT-10
Bean方法返回:
Mon Oct 04 00:00:00 EEST 2010
JSF返回:
03.10.2010
JSF代码:
...
<h:outputText value="#{paym.dueDate}" >
<f:convertDateTime pattern="dd.MM.yyyy"/>
</h:outputText>
...
JSF
显示日期值不正确的原因是什么?
感谢
您需要在<f:convertDateTime>
:中明确指定时区
<f:convertDateTime pattern="dd.MM.yyyy" timeZone="GMT+3" />
还要考虑这个答案,哪个可能最适合夏冬时间不同的国家,以及当您的服务器时区和jsf应用程序用户时区都是这样的时区时。