import java.sql.Date;
import java.text.SimpleDateFormat;public class Test1 {
public static void main(String[] args) {
String temp = "2009-01-01 12:12";
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date=(Date)sdf.parse(temp);
System.out.println(date);
} catch (Exception e) {

System.err.println("error!");
e.printStackTrace();
}
}
}报错:
error!
java.lang.ClassCastException: java.util.Date
at Test1.main(Test1.java:11)
到底怎么回事啊,郁闷死了...

解决方案 »

  1.   

    import java.sql.Date; ---> import java.util.Date
      

  2.   

    import java.text.SimpleDateFormat;public class Test1 {
    public static void main(String[] args) {
    String temp = "2009-01-01 12:12"; try {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println(sdf.parse(temp).toString());
    String date=sdf.format(sdf.parse(temp));//是这样子写的,好无语我....
    System.out.println(date);
    } catch (Exception e) {
    // TODO: handle exception
    System.err.println("error!");
    e.printStackTrace();
    }
    }
    }
      

  3.   

    唉,太粗心了,两个Date包搞错了...
      

  4.   

    sdf.parse(temp);本身就返回Date类型,不用强转类型。
    System.out.println(“”);是用来打印字符串的,你打印的是Date类型的数据,所以报错。
    改为:System.out.println(sdf.format(sdf.parse(temp)));方法
       format(Date date)将一个 Date 格式化为日期/时间字符串。
      

  5.   

    sql.date两个包容易混淆util.date,
    println()类型种类不多,可以记住这些