public class StopWatch extends Canvas {
  public void paint(Graphics g){
    int endTime=0;
    int beginTime=0;
   //Date da=sdf1.parse("00:00:00");
     Date da=new Date(endTime-beginTime);]
    //da.setTime(da.getTime()+endTime-beginTime);
      String time=sdf1.format(da);
      g.drawString(time, 10, 20);
    }
}
这样的代码将输出:08:00:00
于是我要把初始时间改为: 00:00:00public class StopWatch extends Canvas {
  public void paint(Graphics g){
     int endTime=0;
     int beginTime=0;
     Date da=sdf1.parse("00:00:00");
    //Date da=new Date(endTime-beginTime);]
    da.setTime(da.getTime()+endTime-beginTime);
    String time=sdf1.format(da);
   }
}
可是这样就error报告:Type mismatch: cannot convert from Date to Date
于是我就 Date da=(Date)sdf1.parse("00:00:00");
这样就没有任何显示了这里我就不明白下面的代码中  Date d=sdf1.parse("2009-02-02"); 不报告error:Type mismatch: cannot convert from Date to Date
能运行,为什么在convas中报告public static void main(String[] args) {
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");//相当于定义了一个日期的表示模式
         SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日");
         try{
            Date d=sdf1.parse("2009-02-02");//按照字符串中格式提取时间值,解析字符串的文本,生成 Date
            System.out.println(sdf2.format(d));//format用于把某个对象的日期值按照它指定的格式输出
         }
         catch(Exception e)
         {
          e.getStackTrace();
        
         }
}
补充一句 :小弟用这个网站的论坛没多久,实在没多少分,实在是寒酸!希望大家帮助一下,多谢!!!

解决方案 »

  1.   


    修改一下:public class StopWatch extends Canvas { 
                    public void paint(Graphics g){ 
                                  SimpleDateFormat sdf1=new SimpleDateFormat("HH:mm:ss");
                                  int endTime=0; 
                                  int beginTime=0; 
                                  Date da=new Date(endTime-beginTime);
                                  String time=sdf1.format(da); 
                                  g.drawString(time, 10, 20); 
                    } 

    这样的代码将输出:08:00:00 
    于是我要把初始时间改为: 00:00:00 public class StopWatch extends Canvas { 
                    public void paint(Graphics g){ 
                                  SimpleDateFormat sdf1=new SimpleDateFormat("HH:mm:ss");
                                  int endTime=0; 
                                  int beginTime=0; 
                                  Date da=sdf1.parse("00:00:00"); 
                                  da.setTime(da.getTime()+endTime-beginTime); 
                                  String time=sdf1.format(da); 
                    } 

    可是这样就error报告:Type mismatch: cannot convert from Date to Date 
    于是我就 Date da=(Date)sdf1.parse("00:00:00"); 
    这样就没有任何显示了 这里我就不明白下面的代码中  Date d=sdf1.parse("2009-02-02"); 不报告error:Type mismatch: cannot convert from Date to Date 
    能运行,为什么在convas中报告 public static void main(String[] args) { 
            SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");//相当于定义了一个日期的表示模式 
             SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日"); 
            try{ 
                Date d=sdf1.parse("2009-02-02");//按照字符串中格式提取时间值,解析字符串的文本,生成 Date 
                System.out.println(sdf2.format(d));//format用于把某个对象的日期值按照它指定的格式输出 
             } 
            catch(Exception e) 
            { 
            e.getStackTrace(); 
            
            } 

    补充一句 :小弟用这个网站的论坛没多久,实在没多少分,实在是寒酸!希望大家帮助一下,多谢!!!
      

  2.   

    试了一下楼主的代码,在我这里是正确的,就是都没报错,我用的是JDK1.5,ECLIPSE3.4
      

  3.   

    我用JDK1.6  ECLIPSE3.2  报错! 
    还有用JDK1.4 JCreate 不报错!
      

  4.   

    我用JDK1.6  ECLIPSE3.2  报错! 
    还有用JDK1.4 JCreate 不报错!