Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

java.lang.ClassCastException: java.lang.String cannot be cast to oracle.jbo.doamin.Date

adrinaNov 29 2013 — edited Dec 3 2013

Hi,

Am using jdeveloper 11.1.1.6.0..,

My Scenario.

In my jspx page i have an attributes Time varchar2(Have used convert datetime to get only time from user in the format "hh:mm:ss a"). When i enter the time i have a value change listner which performs some validation and the output is printed.

The value change listener used in Time attribute is

public void timevalchg(ValueChangeEvent vce) {
    // Add event code here...
    Calendar c1 = Calendar.getInstance();
    oracle.jbo.domain.Date vcdt = castToJBODate((String)vce.getNewValue());
   
    java.util.Date Date12 =
        convertDomainDateToUtilDate(vcdt);
    c1.setTime(Date12);
    SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");
    Date datea;
    Date dateb;
    Date datec;
    try {
        datea = sdf.parse("02:30:00 PM");
        dateb = sdf.parse("10:30:00 PM");
        datec = sdf.parse("06:30:00 AM");
        if (((c1.getTime()).compareTo(datec) < 0) &&
            ((c1.getTime()).compareTo(datea) > 0)) {
            System.out.println("A");

        } else if (((c1.getTime()).compareTo(datea) < 0) &&
                   ((c1.getTime()).compareTo(dateb) > 0)) {
            System.out.println("B");

        } else {
            System.out.println("C");

        }
        System.out.println("Time get :" + c1.getTime() + "Date a :" +
                           datea + "Date b :" + dateb + "Date C :" +
                           datec+"Convt Date :"+vcdt+"////// :: "+vce.getNewValue());
    } catch (ParseException e) {
        e.printStackTrace();
    }

}

public oracle.jbo.domain.Date castToJBODate(String aDate) {
    SimpleDateFormat formatter;
    java.util.Date date;
    if (aDate != null) {
        try {
            formatter = new SimpleDateFormat("hh:mm:ss a");
            date = formatter.parse(aDate);
            java.sql.Date sqlDate = new java.sql.Date(date.getTime());
            oracle.jbo.domain.Date jboDate =
                new oracle.jbo.domain.Date(sqlDate);
            return jboDate;
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

    return null;
}

when i enter the time it's returning C since the time returns from castToJBODate(String aDate) is 00:00:00.

Kindly help me to get the output right,

Hope am clear with my scenario.

Regards,

Prasad K T,

9840021070.

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 31 2013
Added on Nov 29 2013
5 comments
1,149 views