【问题标题】:Java/OAF Date Conversion Error through Callable Statement通过 Callable 语句的 Java/OAF 日期转换错误
【发布时间】:2017-05-02 09:37:41
【问题描述】:

我通过 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 cannot be cast to java.sql.Date

我使用日期选择器在字段中选择日期。存储在 String 中的值是

2017-05-01 00:00:00.0

使用 SimpleDateFormat 之后的值是 -

Mon Dec 05 00:01:00 IST 2016

请帮忙。 TIA

【问题讨论】:

  • 尝试java.sql.Date.valueOf而不是类型转换。
  • DD/MM/YYYY 作为格式模式?大写 D 是年中的一天(不是月中的日),M 是月,Y 是周年,有时与日历年不同。你不是说dd/MM/yyyy吗?

标签: java sql-server date


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多