如何比较两个DATE变量是否是同一天?(用getYear/getMonth/getDate似乎IDE里面很不好看)

解决方案 »

  1.   

    这些方法被“遗弃”了,不建议使用了,跟楼上所说使用 Calendar 就可以了。
      

  2.   

    定义两个calnedar用equals方法直接判断
      

  3.   

    呵呵,我想知道一下Calendar怎么又怎么判断同一天啊?:)
      

  4.   

    equals? 2007-07-10 10:00am 和 2007-07-10 10:00pm 是同一天不?
      

  5.   

    自己写了一下,大家提下意见SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMDD");
    if(sdf.format(dt1).equals(sdf.format(dt2))) {
      ...
    }
      

  6.   

    两种:
    1、用java.util.Date.compareTo(Date anotherDate) 但是Date这个类很多方法对时区等支持不够,所以不少都是已过时。现在日期推荐用大家这个方法比较calnedar。不过Date还是有可取之处,相对来说它更轻量级。在比较文本日期的时候比较简单,比如:
    DateFormat df = new SimpleDateFormat();
    (df.parse("2007-05-01")).compareTo(df.parse("2007-07-01"))
    算是一个比较严谨又简单的比较文本日期的方法了。
    2、用calnedar的实现类GregorianCalendar ,这个构造就多了。实际能进行比较的方法就是dreamover(梦醒了〖http://hellfire.cn〗)所说的public boolean before(Object when),public boolean after(Object when),public int compareTo(Calendar anotherCalendar),其实本质都是用的compareTo
      

  7.   

    我只想知道同一天不同时间难道equals返回true,compareTo返回0?ls的LS貌似可行..
      

  8.   

    Calendar c1 = new GregorianCalendar(2007, 6, 11, 14, 22, 33);
    Calendar c2 = new GregorianCalendar(2007, 6, 11, 15, 22, 44);
    SimpleDateFormat sim = new SimpleDateFormat("yyyyMMdd");
    String c1s = sim.format(c1.getTime());
    String c2s = sim.format(c2.getTime());
    System.out.println(c1s.compareTo(c2s));