Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java 1.4升级到java 8时java中的日期问题_Java_Oracle_Date_Java 8_Jdk1.6 - Fatal编程技术网

从java 1.4升级到java 8时java中的日期问题

从java 1.4升级到java 8时java中的日期问题,java,oracle,date,java-8,jdk1.6,Java,Oracle,Date,Java 8,Jdk1.6,最近,我们将UNIX中的java运行时环境从jdk 1.4升级到jdk 8。我们发现,在oracle数据库中插入的日期带有时间戳(dd-mm-yyy-hh:mm:ss)。升级之前,它是唯一的日期(dd-mm-yyyy)。这是由于jdk升级。在升级到JDK 8之后,使用了在JDK 1.4中运行的相同版本。JDK 6也面临着这个问题 有没有人遇到过这种情况。我不理解,只是升级java环境造成了这个问题,因为没有代码更改 是JDK1.4中的默认日期格式,它不同于JDK8或JDK6 有没有什么方法可以在

最近,我们将UNIX中的java运行时环境从jdk 1.4升级到jdk 8。我们发现,在oracle数据库中插入的日期带有时间戳(dd-mm-yyy-hh:mm:ss)。升级之前,它是唯一的日期(dd-mm-yyyy)。这是由于jdk升级。在升级到JDK 8之后,使用了在JDK 1.4中运行的相同版本。JDK 6也面临着这个问题

有没有人遇到过这种情况。我不理解,只是升级java环境造成了这个问题,因为没有代码更改

是JDK1.4中的默认日期格式,它不同于JDK8或JDK6

有没有什么方法可以在不修改代码的情况下解决这个问题,比如使用SimpleDataFormat将日期转换为所需的格式等。 下面是我们用来将日期转换为所需格式的代码

SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy");
java.util.Date d = sdf.parse(inputDate);
stmt.setDate(1, new java.sql.Date(d.getTime()));

我们也面临同样的问题,但是当我们查看代码时,我们发现我们使用了
java.sql.Timestamp

我们将java中的返回类型更改为
java.sql.Date
。此外,在ORACLE数据库中,数据类型称为日期


检查Java中的返回类型,如果它仍然未解决,请更新

如果您使用的是开始日期和结束日期,您只需在dao层中使用即可从数据库获取数据

date_trunc('day',fileUploadDate) between to_timestamp(:startDate, 'dd/MM/YYYY HH:mm:ss.S') and to_timestamp(:endDate, 'dd/MM/YYYY HH:mm:ss.S')
以及在控制器使用中

SimpleDateFormat sdf =  new SimpleDateFormat("dd/MM/yyyy",Locale.ENGLISH);

有趣的问题,但如果没有代码,我们可能无法诊断。问题可能存在于很多地方,因此,除非有人解决了完全相同的问题——即使是在这种情况下——否则我们只能猜测。Oracle数据库定义了两(2)种日期/时间数据类型,日期和时间戳。它们都包含日期和时间。所以我不明白你所说的唯一日期(dd-mm-yyy)是什么意思。从来没有“JDK 4”。有一个jdk1.4,它被命名为“Java2”。感谢您的贡献。请不要教年轻人使用臭名昭著的麻烦和过时的
SimpleDateFormat
类。asker刚刚升级到Java 8,因此没有任何理由不享受它的
DateTimeFormatter
。亲爱的,我不是在教你。我想这可能会对你有所帮助,我已经给出了我的观点,因为这个世界上没有人是完美的。但我非常清楚一件事“许多人受过教育,但并不完全有礼貌。”这两个类,
Timestamp
Date
,都很糟糕,现在充斥着设计缺陷和黑客。它们都在几年前被java.time类取代。在JDBC 4.2或更高版本中使用
OffsetDateTime
OffsetDateTime odt=myResultSet.getObject(…,OffsetDateTime.class)
myPreparedStatement.setObject(…,odt);