我通过 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

请您参考如下方法:

不要在 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()); 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!