测试代码:
public static void main(String[] arg){
Date now = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("今天的日期:"+format.format(now));
System.out.println("今天的日期+1天:" + format.format(new Date(now.getTime() + 1 * 24 * 60 * 60 * 1000)));
System.out.println("今天的日期+24天:" + format.format(new Date(now.getTime() + 24 * 24 * 60 * 60 * 1000)));
System.out.println("今天的日期+25天:" + format.format(new Date(now.getTime() + 25 * 24 * 60 * 60 * 1000)));
System.out.println("今天的日期+99天:" + format.format(new Date(now.getTime() + 99 * 24 * 60 * 60 * 1000)));
}
运行结果:
今天的日期:2014-10-10
今天的日期+1天:2014-10-11
今天的日期+24天:2014-11-03
今天的日期+25天:2014-09-15
今天的日期+99天:2014-10-10
问题:为什么加25天就开始出现日期混乱?
------解决思路----------------------
25 * 24 * 60 * 60 * 1000 超出了int 的范围了,已经溢出了
System.out.println(24 * 24 * 60 * 60 * 1000);
System.out.println(Integer.MAX_VALUE);
System.out.println(25 * 24 * 60 * 60 * 1000);
2073600000
2147483647
-2134967296
想使用这种方式的话,可以
25L * 24 * 60 * 60 * 1000
99L * 24 * 60 * 60 * 1000
先转换为long 类型,然后就不会出错了