java.lang.ClassCastException:java.util.Date

时间:2014-10-16 09:54:46

标签: java

我正在尝试将Date插入数据库列类型Date 得到java.lang.ClassCastException: java.util.Date

代码:

Date dateFormatter = (Date) new SimpleDateFormat("dd/MM/yyyy").parse(requiredByDate.toString());
java.sql.Date requiredByDate1 = new java.sql.Date(dateFormatter.getTime());

设置为准备好的声明:

pstmt.setDate(1, requiredByDate1);

收到错误

 java.lang.ClassCastException: java.util.Date

建议如何解决这个问题。

谢谢

2 个答案:

答案 0 :(得分:1)

您的代码和错误消息不匹配。您必须使用其他版本的代码。

你有:

java.sql.Date requiredByDate1 = ...
pstmt.setDate(1, requiredByDate1);

但该代码不能导致

java.lang.ClassCastException: java.util.Date

因为它不是java.util.Date。

答案 1 :(得分:0)

您的代码以下是:

Date dateFormatter = (Date) new SimpleDateFormat("dd/MM/yyyy").
                                               parse(requiredByDate.toString());

现在您的日期可能是:

1)java.util.Date ,或

2)java.sql.Date ,最终是 java.util.Date的子类。

然而,

SimpleDateFormat class belongs to java.text package. And you are trying to cast 
an object of java.text.SimpleDateFormat to java.util.Date( OR java.sql.Date)
which is why you are getting java.lang.ClassCastException