今天做了一个小程序,
将"2002-03-15"格式的日期字符串转换成"2002年03月15日",
有点问题,代码如下:
import java.util.*;
import java.text.*;
public class ID
{
public static void main(String args[])
{
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sd1=new SimpleDateFormat("yyyy年MM月dd日");
try{
Date d=sd.parse("1989-10-04");
System.out.println(sd1.format(d));
}
catch(Exception e)
{
System.out.println(e.getMessage());
}

}
}
编译的时候总提示我有不兼容的类型.
跟大家请教一下,谢谢哦~~

解决方案 »

  1.   

    我用IDE运行没问题啊
    运行结果:
    run:
    1989年10月04日
    成功生成(总时间:0 秒)
      

  2.   

      没有啊,是正确的啊。import java.util.*;
    import java.text.*;public class DataInput { public static void main(String args[]) {
    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat sd1 = new SimpleDateFormat("yyyy年MM月dd日");
    try {
    Date d = sd.parse("1989-10-04");
    System.out.println(sd1.format(d));
    } catch (Exception e) {
    System.out.println(e.getMessage());
    } }}运行结果是 1989年10月04日 这个呀。
      

  3.   

    我用的cmd运行的,
    C:\Documents and Settings\Administrator\桌面\study\java学习>javac ID.java
    T.java:11: 不兼容的类型
    找到: java.util.Date
    需要: Date
                    Date d=sd.parse("1989-10-04");
                                   ^C:\Documents and Settings\Administrator\桌面\study\java学习>
      

  4.   

    没有啊,是正确的啊。import java.util.*;
    import java.text.*;public class DataInput { public static void main(String args[]) {
    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat sd1 = new SimpleDateFormat("yyyy年MM月dd日");
    try {
    Date d = sd.parse("1989-10-04");
    System.out.println(sd1.format(d));
    } catch (Exception e) {
    System.out.println(e.getMessage());
    } }}
    运行结果是 1989年10月04日 这个呀。
      

  5.   


    C:\Documents and Settings\Administrator\桌面\study\java学习>javac ID.java
    T.java:11: 不兼容的类型
    找到: java.util.Date
    需要: Date
                    Date d=sd.parse("1989-10-04");
                                   ^
    1 错误C:\Documents and Settings\Administrator\桌面\study\java学习>
      

  6.   

        也可能是data许多方法过时的原因,或者跟dataformat类不兼容吧!!
      

  7.   

    jdk6.13版本,用cmd运行,别的都没问题呀
      

  8.   

    可能是环境问题,我的机器上在cmd的环境也正常。
      

  9.   

    String s = "1970-12-30 08:24:37";
    Timestamp ts = Timestamp.valueOf(s);
    这样也可以将一个字符串转化为日期类型
      

  10.   

    打印出,看是不是java.util.Date:
    System.out.println(sd.parse("1989-10-04") instanceof java.util.Date);
    true就是,false的话可能就是jdk版本问题
    javac -version:查看jdk版本 
      

  11.   

    run:
    1989年10月04日
    成功生成(总时间:0 秒)netbean和jdk和eclipse运行都正常,怀疑LZ的环境。