【发布时间】:2019-03-14 05:49:59
【问题描述】:
最近我们将 UNIX 中的 java 运行时环境从 jdk 1.4 升级到 jdk 8。我们发现,插入到 oracle 数据库中的日期带有时间戳 (dd-mm-yyyy hh:mm:ss)。在升级之前,它只是日期(dd-mm-yyyy)。这是由于jdk升级造成的吗?升级到 JDK 8 后,使用了在 JDK 1.4 中运行的相同版本。 JDK 6 也面临这个问题。
有没有人遇到过这种情况。我无法理解,只是升级 java 环境会产生这个问题,因为没有代码更改。
JDK 1.4 中的默认日期格式是否与 JDK8 或 6 不同。
有什么方法可以在不修改代码的情况下克服这个问题,比如使用 SimpleDateFormat 等将日期转换为所需的格式。 下面是我们用来将日期转换为所需格式的代码。
SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy");
java.util.Date d = sdf.parse(inputDate);
stmt.setDate(1, new java.sql.Date(d.getTime()));
【问题讨论】:
-
有趣的问题,但如果没有代码,我们可能没有机会进行诊断。问题可能出在很多地方,所以除非有人解决了完全相同的问题——即使在那种情况下——我们也只能猜测。
-
Oracle 数据库定义了两 (2) 个日期/时间数据类型,DATE 和 TIMESTAMP。它们都包含日期和时间。所以我不明白你所说的只有日期(dd-mm-yyyy)是什么意思。
-
从来没有“JDK 4”。有一个 jdk1.4 被标记为“Java 2”。
标签: java oracle date java-8 jdk1.6