String s1 = "2002/09/15 16:15:37";
String s2 = "2002/09/14 16:15:37";
DateFormat df = DateFormat.getInstance();
Date d1 = df.parse(s1);
Date d2 = df.parse(s2);
long l = d1.getTime() - d2.getTime();

解决方案 »

  1.   

    先谢谢你!
    不过两个时间相减的结果能等于int型吗?
    我现在也是用的这个方法,但是我要将结果和一个int型值相比较。
      

  2.   

    不好意思,上面的写错了,应该用下面的方法:
    import java.util.Date;
    import java.text.SimpleDateFormat;String s1 = "2002/09/15 16:15:37";
    String s2 = "2002/09/14 16:15:37";
    SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd mm:ss:hh");
    Date d1 = df.parse(s1);
    Date d2 = df.parse(s2);
    long l = d1.getTime() - d2.getTime();
      

  3.   

    把要比较的int型转为long,比较后再转回,不就行了。
      

  4.   

    getTime()返回一个long型整数。是以毫秒为单位的。
    getTime 
    public long getTime() 
    Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object
    你可以根据需要把它化为int型。比如:
    int i = l / (1000 * 60 * 60 * 24);
    得到的i,就是d1与d2相差的天数。
      

  5.   

    import java.util.*;
    import java.text.*; 
    class a 
    {
    public static void main(String[] args) 
    {
    String s1 = "2003/08/15 17:15:30";
    String s2 = "2002/09/14 14:18:37";
    try{ 
    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");

    ParsePosition pos = new ParsePosition(0);
    ParsePosition pos1 = new ParsePosition(0);
    Date dt1=formatter.parse(s1,pos);
    Date dt2=formatter.parse(s2,pos1);
    System.out.println("dt1="+dt1);
    System.out.println("dt2="+dt2);
    long l = dt1.getTime() - dt2.getTime();

    System.out.println("Hello World!="+l);
    }catch(Exception e){
    System.out.println("exception"+e.toString());
    }

    }
    }
      

  6.   

    我现在得到的结果(long)为什么是负值阿?并确我将Integer型转换成long后,还是原来的值没有变(转换前是10 转换后还是10)?
      

  7.   

    import java.util.*;
    import java.text.*; 
    class a 
    {
    public static void main(String[] args) 
    {
    String s1 = "2003/08/15 17:15:30";
    String s2 = "2002/09/14 14:18:37";
    try{ 
    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");

    ParsePosition pos = new ParsePosition(0);
    ParsePosition pos1 = new ParsePosition(0);
    Date dt1=formatter.parse(s1,pos);
    Date dt2=formatter.parse(s2,pos1);
    System.out.println("dt1="+dt1);
    System.out.println("dt2="+dt2);
    long l = dt1.getTime() - dt2.getTime();
    long i = l/(1000*60*60*24);//这是他们相差的天数。 System.out.println("Hello World!="+i);
    }catch(Exception e){
    System.out.println("exception"+e.toString());
    }

    }
    }
      

  8.   

    楼主的的到了负的结果是因为,你把long型强行转换成int型时,精度丢失导致的。所以要象我上面的那样做,就可以了。