java 里面取 30 天之后的时间有很多种方法。踩了一个坑如下。
Date dayAfter30Days = new Date(System.currentTimeMillis() + 3600000 * 24 * 30);
这个方法得到的时间不是 30 天之后的时间,而是得到了当前时间以前的一个时间。那说明上面的计算方式其实是将当前时间减去了一些值。这就联想到后面那一个加因子溢出,符号位为负了。
使用这个方法可以正确计算:
Date dayAfter30Days = new Date(System.currentTimeMillis() + (long)3600000 * 24 * 30);