long rt = System.currentTimeMillis()-(1000*60*60*24*30);
当我将上述变量rt转换为日期时,我无法在30天之前获得预期日期(即)。为什么呢?
答案 0 :(得分:5)
1000*60*60*24*30
导致int
溢出,因为它大于Integer.MAX_VALUE
。将其更改为1000L*60*60*24*30
以改为使用long
。
例如:
long rt = System.currentTimeMillis()-(1000L*60*60*24*30);
System.out.println (new Date(rt));
为我打印:
Sun Feb 25 09:18:58 IST 2018