编辑:JSF 实现:Mojorra 2.1.9
我的网络应用程序表现得很奇怪。当我在服务器计算机上部署应用程序时,它会显示委内瑞拉标准时间的时间。像这样 Sun Aug 05 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 日期时间转换器默认使用 UTC。仅当您设置该上下文参数时,它才会默认为系统时区(底层服务器平台的时区)。显然,有问题的服务器默认配置为委内瑞拉时区(可能是因为它托管在委内瑞拉,并由不知道自己在做什么的服务器管理员维护?)。
删除该上下文参数应该可以解决您的具体问题,假设您没有覆盖了 JSF 默认日期时间转换器或其设置,例如通过自定义转换器或通过设置 timeZone
<f:convertDateTime>
的属性.
如果这不能以某种方式解决你的问题,那么尝试升级 JSF 实现(但是我不记得 Mojarra 中与此相关的任何错误,所以我认为如果你使用 Mojarra,升级不会解决它;不过我不确定 MyFaces),或者尝试显式设置 timeZone
每个 <f:convertDateTime>
的属性标记整个页面。
关于java - Tomcat7 上的 JSF 与 Java6 系统时间显示委内瑞拉时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818038/