请看如下代码:
 public static void main(String[] args)
        throws ParseException
    {
        Date currentDate = new Date();
        Date beginDate = currentDate;
        Date endDate = currentDate;
        beginDate.setDate(currentDate.getDate() - 2);
        System.out.println("beginDate====================" + beginDate.toLocaleString());
        
        endDate.setDate(currentDate.getDate() + 5);
        System.out.println("endDate====================" + endDate.toLocaleString());
        
        System.out.println(beginDate == endDate);
        
        System.out.println("begin:" + beginDate.toLocaleString() + "-----------endDate:" + endDate.toLocaleString());
        
    }
输出结果很奇怪:beginDate====================2011-11-14 12:56:51
endDate====================2011-11-19 12:56:51
true
begin:2011-11-19 12:56:51-----------endDate:2011-11-19 12:56:51
虽然setDate方法已经过时,但是还是不明白这个输出结果为什么是这样的,麻烦指点,谢谢。

解决方案 »

  1.   

    恩  对象没有搞懂吧,在生成一个Date对像用于endDate 这样就不会相等了
      

  2.   


    请问为啥beginDate====================2011-11-14 12:56:51
    endDate====================2011-11-19 12:56:51    这里打印的不一样呢? 既然是一个对象的话?
      

  3.   

            beginDate.setDate(currentDate.getDate() - 2);
            System.out.println("beginDate====================" + beginDate.toLocaleString());
            
            endDate.setDate(currentDate.getDate() + 5);
            System.out.println("endDate====================" + endDate.toLocaleString());你這裏打印了2次,在第2次之前你set了。
      

  4.   

    如果beginDate====================2011-11-14 12:56:51
    endDate====================2011-11-19 12:56:51   这两个打印出来的是同一个值,那好理解,问题是这两个打印的结果不一样啊。