0
    Date date = new Date();
    DateFormat dt = new SimpleDateFormat("yyyy-MM-dd");
     try {
         date = dt.parse("2014-03-14");
     } catch (ParseException parseException) {
     }
    orderBean.setDate((java.sql.Date) date);

when I try to cast util.date to sql.date using above code an error occurs as below. I am using mysql data base to store a data. can anyone help me?

Mar 14, 2014 11:16:44 AM gui.salespot jButton1ActionPerformed
SEVERE: null
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
1
  • FYI, the terribly troublesome old date-time classes such as java.util.Date, java.sql.Date, and java.text.SimpleDateFormat are now legacy, supplanted by the java.time classes built into Java 8 and later. See Tutorial by Oracle. Commented Dec 31, 2018 at 2:36

6 Answers 6

5

No. You cannot cast different type of Objects like that.

instead you can get the time which is long and use it.

java.sql.Date sDate = new java.sql.Date(date.getTime());
Sign up to request clarification or add additional context in comments.

Comments

2

try this way

Date date = new Date();
java.sql.Date d=new java.sql.Date(date.getTime());

Comments

1

java.sql.Date extends from java.util.Date, so you can case java.sql.Date to java.util.Date but not the other way round.

Try using...

orderBean.setDate(new java.sql.Date(date.getTime()));

Instead...

1 Comment

almost all the answers are upvoted except yours though your answer has good explanations,+1 from my side
1

java.util.Date is superclass of java.sql.Date you can not type cast it by this way.

try with - java.sql.Date#Date(long)

Snippet -

java.sql.Date sqlDate = new java.sql.Date(date.getTime())

Comments

0

look like simple....

public class MainClass {

  public static void main(String[] args) {
    java.util.Date utilDate = new java.util.Date();
    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
    System.out.println("utilDate:" + utilDate);
    System.out.println("sqlDate:" + sqlDate);

  }
}

explains it. The link is click

Comments

0

Use this answer to convert date.

java.util.Calendar cal = Calendar.getInstance();
java.util.Date utilDate = new java.util.Date(); // your util date
cal.setTime(utilDate);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);    
java.sql.Date sqlDate = new java.sql.Date(cal.getTime().getTime()); // your sql date
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);

For your concern copy my code.

    Date date = new Date();
    DateFormat dt = new SimpleDateFormat("yyyy-MM-dd");
     try {
         date = dt.parse("2014-03-14");
     } catch (ParseException parseException) {
     }
      orderBean.setDate(new java.sql.Date(date.getTime()));

Check this reference.. Thanks..

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.