编辑:JSF实现:Mojorra 2.1.9
我的web应用程序运行异常。当我在服务器机器上部署我的应用程序时,它会显示委内瑞拉标准时间的时间。就像这个太阳8月5日11:46:26 VET 2012
问题是我不在委内瑞拉。我检查了服务器机器上的时区配置,它是正确的。当我在本地机器上运行应用程序时,没有任何问题,时间是正确的。但当部署时,时间是错误的。
我将下面的上下文参数放入web.xml中,但它没有帮助。什么问题?我不知道
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
删除该上下文参数应该可以解决您的具体问题,假设您没有覆盖JSF默认日期-时间转换器或其设置,例如通过自定义转换器或设置<f:convertDateTime>
的timeZone
属性。
如果这并不能以某种方式解决您的问题,那么尝试升级JSF实现(但是,我不记得Mojarra中有任何与此相关的错误,所以如果您使用Mojara,我不认为升级会解决它;不过,我不确定MyFaces),或者尝试显式设置整个页面中每个<f:convertDateTime>
标记的timeZone
属性。
我用"-Dusser.timezone=Europe/Instanbul"参数启动了tomcat,现在时间到了。我不明白为什么默认时间是委内瑞拉时间,但这为我解决了问题。我将进一步研究这一点,以了解是什么导致了这个问题。