在保留时间戳的同时将java.sql.Date对象转换为java.util.Date的最简单方法是什么?
我试过了:
java.util.Date newDate = new Date(result.getDate("VALUEDATE").getTime());
没有运气。它仍然只将日期部分存储到变量中。
答案 0 :(得分:56)
java.sql.Date类只能在没有时间的情况下携带日期,因此您看到的转换结果对于此类型是正确的。您需要使用java.sql.Timestamp来获取时间的完整日期。
java.util.Date newDate = result.getTimestamp("VALUEDATE");
答案 1 :(得分:8)
由于java.sql.Date
延伸java.util.Date
,您应该可以
java.util.Date newDate = result.getDate("VALUEDATE");
答案 2 :(得分:8)
如果你真的希望运行时类型是util.Date,那么就这样做:
java.util.Date utilDate = new java.util.Date(sqlDate.getTime());
布赖恩。
答案 3 :(得分:7)
此函数将从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;
}
答案 4 :(得分:3)
通过阅读源代码,如果java.sql.Date
确实有时间信息,则调用getTime()
将返回包含时间信息的值。
如果不起作用,则该信息不在java.sql.Date
对象中。我希望JDBC驱动程序或数据库(实际上)将时间组件归零......或者首先不存在信息。
我认为您应该使用java.sql.Timestamp
和相应的结果集方法以及相应的SQL类型。
答案 5 :(得分:-2)
在最近的实现中,java.sql.Data是java.util.Date的子类,因此不需要转换。 见这里:https://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Date.html