我有一个与时区相关的问题,我无法解决。也许这里有人可以帮我一把。我将尝试解释这种情况:
我有 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 (开罗) 并显示相同的时间。另一方面,在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不存储日期的时区,如果我错了,请纠正我。因此,据我了解,所有日期都应具有相同的时区。
知道吗?提前致谢
你可以让预言机存储时区,这不是我们在这里做的事情,但这是可能的。
这两个链接可能会对您有所帮助。带有本地时区和NLS_TIMESTAMP_FORMAT