java - Tomcat7 上的 JSF 与 Java6 系统时间显示委内瑞拉时间

标签 java jsf timezone tomcat7

编辑: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/

相关文章:

java - 使用 JSF2.0 和 Primefaces 3.4 进行导航

java - JSF/Oracle 中的日期和时区

MySQL - 为 Rails 应用程序设置默认时区

java - Jdev 在迁移时崩溃

java - JSF:绝对需要将昂贵的业务逻辑放入访问器方法中。如何避免多次调用这种昂贵的BL

java - 如何更改我的语句以在 HashMap 中打印对象成员类型的频率?

Java - 交替替换逗号

postgresql - 什么是 "Australia Eastern Summer Standard Time"

java - 在中央 Maven 元素中定义 webapp 样式

java - 如何根据条件使用 Java 8 流删除重复项