JAVA: - 将存储在HashMap中的对象转换为sql日期类型

时间:2011-09-09 12:43:33

标签: java date jdbc classcastexception

我有这个问题.. 我有一个Hashmap包含String作为键,Object作为值。我里面有一个日期对象...... 在设置存储过程调用DB的值时,我想将其转换为sql Date类型..

代码段..

this.cStmt.setDate(15,(java.sql.Date) (SubsProfile.get(Constants.SUBSC_DETAILS_EXPIRY_DATE_1)));

但是在运行时我得到的是ClassCastException ..

例外: -

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date

请帮我转换为合适的类型......

3 个答案:

答案 0 :(得分:2)

这是因为,正如异常所说,您的对象是java。 util .Date,并且您将它转换为java。 sql .Date!

这样做:

java.sql.Date sqlDate = new java.sql.Date(((java.util.Date)SubsProfile.get(Constants.SUBSC_DETAILS_EXPIRY_DATE_1)).getTime());
this.cStmt.setDate(15,sqlDate);

答案 1 :(得分:1)

获取您拥有的java.util.Date对象的long值,并使用该long值创建一个java.sql.Date对象。

答案 2 :(得分:1)

java.util.Date utilDate = new java.util.Date();

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

这应该可以帮助您将util.Date转换为sql.Date