java - Oracle 日期和 EJB 日期

标签 java oracle date ejb

我的 Oracle 数据库中有一个 DATE 类型的列。 06.09.12 是存储在那里的值之一。我还有一个映射到该表的 EJB 实体,该表有一个 java.util.Date 类型的成员字段“date”。但是,getter 方法返回存储在表中的日期加上一天,例如。 G。 07.09.12 而不是 06.09.12。如何准确获取存储的日期?我应该考虑使用时间戳吗?

最佳答案

您可能有不同的时区 - DB 上的时区与 Java 中设置的时区不同。底层时间实际上是相同的,但是,例如,DB 上的日期在 GMT 中被解释为 GMT,而 Java 中的日期被解释为东部时间。 GMT 午夜过后,GMT 比 GMT 早一天 7 个小时左右。

这两个时区默认为服务器的时区,但可以被数据库安装和 Java VM 覆盖。

要在 Oracle 上测试是否属于这种情况:

select dbtimezone,sessiontimezone from dual;

在 Java 上:

TimeZone tz = Calendar.getInstance().getTimeZone();
System.out.println("TimeZone: "+tz.getDisplayName());

关于java - Oracle 日期和 EJB 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12363693/

相关文章:

java - 使用 shift、默认操作的 Jolt 转换

php - 如何从日期和月份中删除第一个数字0

date - 将当前日期添加到文件名时出现 mysqldump 错误

SQL查询可预订房间

java - String -Java 8 lambda 中的重复项

java - 如何用 Mockito 模拟 Thread.class?

java - 如果我使用 Java 8 的 String.codePoints 获取一个 int codePoints 数组,数组的长度是字符数吗?

c# - 连接到 oracle .net 核心

sql - Postgres 中的 NOCYCLE

sql - 在 Oracle 中从序列中获取增量