我有一个与时区相关的问题,我无法解决。也许这里有人可以帮帮我。我将尝试解释这种情况:
我有 2 台服务器:
- Windows Server 2008:这是一个应用服务器,我在其中有一个通过 Apache Tomcat 6.29 运行的 Web 服务。安装的JVM是1.6_20
- Linux Red Hat Enterprise:这是安装了 Oracle 数据库服务器 11.1.0.6.0 的数据库服务器
两台服务器都有时区 UTC+2 (CAIRO) 并显示相同的时间。另一方面,在 Windows 服务器中运行的 Web 服务是使用 Java 和 Apache CXF (JAX-WS + JAXB) 开发的。WS 返回的所有日期和时间都来自数据库,我使用注释将日期编组为 XML 格式。WS 响应示例:
@XmlSchemaType(name = "date")
protected Date birthDate;
@XmlSchemaType(name = "dateTime")
protected Date activationDate;
我遇到的问题是,其中一些日期由时区 +02:00 的 WS 返回,而其他一些时区 +03:00 的日期,我无法找到解释。
据我所知,时区是由 java 从操作系统中获取正确值设置的,我不确定,但我认为 Oracle 不会存储日期的时区,如果我错了,请纠正我。因此,据我了解,所有日期都应使用相同的时区。
任何想法?提前致谢