在保留时间戳的同时将java.sql.Date对象转换为java.util.Date的最简单方法是什么?将java.sql.Date转换为java.util.Date
我想:
java.util.Date newDate = new Date(result.getDate("VALUEDATE").getTime());
没有运气。它仍然只将日期部分存储到变量中。
在保留时间戳的同时将java.sql.Date对象转换为java.util.Date的最简单方法是什么?将java.sql.Date转换为java.util.Date
我想:
java.util.Date newDate = new Date(result.getDate("VALUEDATE").getTime());
没有运气。它仍然只将日期部分存储到变量中。
java.sql.Date类设计为只带一个没有时间的日期,因此您看到的转换结果对于此类型是正确的。您需要使用java.sql.Timestamp来随时获取完整的日期。
java.util.Date newDate = result.getTimestamp("VALUEDATE");
由于java.sql.Date
延伸java.util.Date
,你应该能够做到
java.util.Date newDate = result.getDate("VALUEDATE");
是的,但在运行时,'newDate'仍然是'java.sql.Date'的一个实例。 – 2016-10-05 11:56:33
从阅读源代码,如果java.sql.Date
没有真正有时间信息,调用getTime()
将返回包含时间的值信息。
如果这不起作用,则信息不在java.sql.Date
对象中。我期望JDBC驱动程序或数据库(实际上)将时间组件归零...或者信息不在首位。
我认为你应该使用java.sql.Timestamp
和相应的resultset方法以及相应的SQL类型。
我在查询Oracle 10g。使用ojdbc14.jar – mservidio 2011-05-20 00:53:28
如果你真的想运行时类型是util.Date则只是这样做:
java.util.Date utilDate =新java.util.Date(sqlDate.getTime());
Brian。
该函数将从SQL日期对象返回一个转换后的java日期。
public static java.util.Date convertFromSQLDateToJAVADate(
java.sql.Date sqlDate) {
java.util.Date javaDate = null;
if (sqlDate != null) {
javaDate = new Date(sqlDate.getTime());
}
return javaDate;
}
在最近的实现中,java.sql.Data是java.util.Date的子类,因此不需要转换。 在这里看到:https://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Date.html
这种继承是一个奇怪的设计传统 – seand 2011-05-20 00:45:49