String s1 = "8:34:35";
String s2 = "4:24:23";
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
Date d1 = sdf.parse(s1);
Date d2 = sdf.parse(s2);
long date1 = d1.getTime();
long date2 = d2.getTime();
long date3 = (long)(date1 + date2);
Date date = new Date();
date.setTime(date3);
String s = "" + date.getHours() + date.getMinutes() + date.getSeconds();
System.out.println(s);
为什么分钟和秒相加减没问题,小时加减会有问题呢?
请指导下这段代码什么地方有问题

解决方案 »

  1.   


    String s1 = "8:34:35";
            String s2 = "4:24:23";
            SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");    
            Date d1 = sdf.parse(s1);        
            Date d2 = sdf.parse(s2);        
            long date1 = d1.getTime();
            long date2 = d2.getTime();
            long date3 = (long)(date1 + date2)/1000;
            Date dt = new Date(date3 * 1000);
            String sDateTime = sdf.format(dt);
            System.out.println(sDateTime);
      

  2.   

    试了下,如果分钟超过60,小时就会编程1:00;00什么的,应该和hh:mm:ss有关
      

  3.   


    String s1 = "8:34:35";
            String s2 = "4:29:23";
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");    
            Date d1 = sdf.parse(s1);        
            Date d2 = sdf.parse(s2);        
            long date1 = d1.getTime();
            long date2 = d2.getTime();
            long date3 = (long)(date1 + date2)/1000;
            Date dt = new Date(date3 * 1000);
            String sDateTime = sdf.format(dt);
            System.out.println(sDateTime);
    HH大写就可以了
      

  4.   


    你把我写的那些直接复制到你的程序中试试,date.getHours() + date.getMinutes() + date.getSeconds()过时的方法能不用就不用,
      

  5.   

    HH大写就可以了,hh表示12进制,8+4=12,所以爆了,用HH表示24进制即可。
      

  6.   


    String s1 = "8:34:35";
            String s2 = "4:29:23";
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");    
            Date d1 = sdf.parse(s1);        
            Date d2 = sdf.parse(s2);        
            long date1 = d1.getTime();
            long date2 = d2.getTime();
            long date3 = (long)(date1 + date2);
            Date dt = new Date(date3);
            String sDateTime = sdf.format(dt);
            System.out.println(sDateTime);又改动了下,有些好像没必要存在
      

  7.   

    执行结果依然不对,jdk1.6执行结果不对貌似有人别的jdk结果就正确。。怪了。
      

  8.   

    我执行通过了的,jdk1.6?我用的1.5的,1.6应该也正确啊··
      

  9.   

    测试了,跟jdk没关系。
    HH表示的是0-23,这个不好弄了