通过可调用语句的Java / OAF日期转换错误

时间:2017-05-02 09:37:42

标签: java sql-server date

我通过Callable语句将OAF页面中的日期传递给SQL数据库。我看了很多解决方案,但我仍然没有成功。这就是我所写的。

OAMessageDateFieldBean validFrom =(OAMessageDateFieldBean)webBean.findIndexedChildRecursive("VaidFrom");

String getValidFrom = validFrom.getValue(pageContext).toString();

SimpleDateFormat formatter = new SimpleDateFormat("DD/MM/YYYY");
System.out.println("Formatter Executed " + formatter);

Date dateValidFrom ;
dateValidFrom = null;
java.sql.Date sqlDate = null;

        try {
                System.out.println("Formatter Date Valid from "+formatter.parse(getValidFrom));
                dateValidFrom = (java.sql.Date)formatter.parse(getValidFrom);
                sqlDate = new java.sql.Date(dateValidFrom.getTime());
                System.out.println("SQL date is "+sqlDate);

                }catch (Exception e){
                    System.out.println("------ "+e);
               } 

callableStatement.setDate(3, sqlDate);

我尝试调试它,我认为错误出现在 dateValidFrom =(java.sql.Date)formatter.parse(getValidFrom);

它显示的错误是 - java.lang.ClassCastException:java.util.Date无法强制转换为java.sql.Date

我使用了日期选择器来挑选日期。存储在String中的值是

2017-05-01 00:00:00.0

使用SimpleDateFormat之后的值是 -

Mon Dec 05 00:01:00 IST 2016

请帮忙。 TIA

1 个答案:

答案 0 :(得分:0)

不要在java.sql.Date中强制转换dateValidFrom,因为formatter.parse返回java.util.Date

尝试类似的东西:

java.util.Date dateValidFrom = formatter.parse(getValidFrom);
java.sql.Date sqlDate = new java.sql.Date(dateValidFrom.getTime());