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
Roledenez
  • 751
  • 4
  • 16
  • 43
  • FYI, the terribly troublesome old date-time classes such as [`java.util.Date`](https://docs.oracle.com/javase/10/docs/api/java/util/Date.html), `java.sql.Date`, and `java.text.SimpleDateFormat` are now [legacy](https://en.wikipedia.org/wiki/Legacy_system), supplanted by the [*java.time*](https://docs.oracle.com/javase/10/docs/api/java/time/package-summary.html) classes built into Java 8 and later. See [*Tutorial* by Oracle](https://docs.oracle.com/javase/tutorial/datetime/TOC.html). – Basil Bourque Dec 31 '18 at 02:36

6 Answers6

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());
Suresh Atta
  • 120,458
  • 37
  • 198
  • 307
2

try this way

Date date = new Date();
java.sql.Date d=new java.sql.Date(date.getTime());
SpringLearner
  • 13,738
  • 20
  • 78
  • 116
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...

MadProgrammer
  • 343,457
  • 22
  • 230
  • 366
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())
Subhrajyoti Majumder
  • 40,646
  • 13
  • 77
  • 103
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

jmail
  • 5,944
  • 3
  • 21
  • 35
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..

Community
  • 1
  • 1
Java Man
  • 1,854
  • 3
  • 21
  • 43