我在win下运行没问题。是差24小时

解决方案 »

  1.   

    应该不会啊
    你得到d01和d02后用System.out.println直接输出看看时间是多少
      

  2.   

    java.util.Date d1 = df1.parse("2004-04-04 02:00:00");的确有点怪,我机子上也是这样,在03点之前的都会少一个小时。然后我把它getTime的值打印出来了,也就是说2点和3点的getTime值是一样的。
    1081072800000 //02
    1081072800000 //03不知道别人机子上的值是多少,会不会是Bug?我的JDK是1.4的
      

  3.   

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try {
    Date date_one = format.parse("2004-04-04 01:00:00");
    Date date_tow = format.parse("2004-04-04 02:00:00");
    System.out.println("date_one="+date_one.getTime());
    System.out.println("date_tow="+date_tow.getTime()); }
    catch (ParseException ex) {
    }
    date_one=1081008000000
    date_tow=1081011600000java 1.3.1
      

  4.   

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    try {
          java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
              "yyyy-MM-dd HH:mm:ss");
          java.util.Date d1 = df.parse("2004-04-04 00:00:00");
          java.util.Date d2 = df.parse("2004-04-05 00:00:00");
          long Days = (d2.getTime() - d1.getTime()) / (3600 * 1000);
          System.out.println("Days==" + Days);
          java.util.Date d01 = df.parse("2004-04-04 01:00:00");
          java.util.Date d02 = df.parse("2004-04-04 02:00:00");
          long Days1 = (d02.getTime() - d01.getTime()) / (3600 * 1000);
          System.out.println("Days1==" + Days1);
        }
        catch (ParseException ex) {
        }
    Days==24Days1==1
    //
    jdk1.4.1
      

  5.   

    我没问题
    win2000
    java 1.3.1try {
          java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
              "yyyy-MM-dd HH:mm:ss");
          java.util.Date d1 = df.parse("2004-04-04 00:00:00");
          java.util.Date d2 = df.parse("2004-04-05 00:00:00");
          long Hours = (d2.getTime() - d1.getTime()) / (3600 * 1000);
          System.out.println("d1.getTime()==" + d1.getTime());
          System.out.println("d2.getTime()==" + d2.getTime());
          System.out.println("Hours==" + Hours);
          java.util.Date d01 = df.parse("2004-04-04 01:00:00");
          java.util.Date d02 = df.parse("2004-04-04 02:00:00");
          long Hours1 = (d02.getTime() - d01.getTime()) / (3600 * 1000);
          System.out.println("d01.getTime()==" + d01.getTime());
          System.out.println("d02.getTime()==" + d02.getTime());   
          System.out.println("Hours1==" + Hours1);
        }
        catch (Exception ex) {
        }d1.getTime()==1081008000000
    d2.getTime()==1081094400000
    Hours==24
    d01.getTime()==1081011600000
    d02.getTime()==1081015200000
    Hours1==1