0

我有一个与时区相关的问题,我无法解决。也许这里有人可以帮帮我。我将尝试解释这种情况:

我有 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 不会存储日期的时区,如果我错了,请纠正我。因此,据我了解,所有日期都应使用相同的时区。

任何想法?提前致谢

4

1 回答 1

0

您可以让 oracle 存储时区,这不是我们在这里做的事情,但这是可能的。

这两个链接可能会对您有所帮助。 带有本地时区NLS_TIMESTAMP_FORMAT的 TIMESTAMP

于 2012-06-06T15:48:05.617 回答