将java.sql.Date转换为java.util.Date
将java.sql.Date对象转换为java.util.Date,同时保留时间戳的最简单方法是什么?
我试过了:
java.util.Date newDate = new Date(result.getDate("VALUEDATE").getTime());
没有运气。 它仍然只将date部分存储到variables中。
java.sql.Date类被devise为只带一个没有时间的date,所以你看到的转换结果对于这种types是正确的。 您需要使用java.sql.Timestamp来获取完整的date。
java.util.Date newDate = result.getTimestamp("VALUEDATE");
由于java.sql.Date
扩展了java.util.Date
,你应该可以做到
java.util.Date newDate = result.getDate("VALUEDATE");
这个函数将从SQLdate对象中返回一个转换后的javadate。
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.Date
实际上有时间信息,调用getTime()
将返回一个包含时间信息的值。
如果这不起作用,那么信息不在java.sql.Date
对象中。 我期望JDBC驱动程序或数据库(实际上)将时间分量归零…或者信息不在首位。
我想你应该使用java.sql.Timestamp
和相应的结果集方法,以及相应的SQLtypes。
如果你真的希望运行时types为util.Date,那么就这样做:
java.util.Date utilDate = new java.util.Date(sqlDate.getTime());
布莱恩。
在最近的实现中,java.sql.Data是java.util.Date的一个子类,所以不需要转换。 请参阅: https : //docs.oracle.com/javase/1.5.0/docs/api/java/sql/Date.html