我通过 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());