JSF页面错误地反映了日期-1天偏移



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显示日期值不正确的原因是什么?

感谢

JSF日期转换器默认为UTC时区。但您的日期显然是使用EEST时区存储的,该时区比UTC(准确地说是GMT+3)晚了几个小时。当使用UTC时区对这些日期进行积分时(默认情况下JSF是这样做的),您将获得时间上的小时数,从而表示前一天。

您需要在<f:convertDateTime>:中明确指定时区

<f:convertDateTime pattern="dd.MM.yyyy" timeZone="GMT+3" />

还要考虑这个答案,哪个可能最适合夏冬时间不同的国家,以及当您的服务器时区和jsf应用程序用户时区都是这样的时区时。

相关内容

  • 没有找到相关文章

最新更新