奇怪的约会行为?

Vam*_*ani 0 java date

life  = 91
today = System.currentTimeMillis()
expireDate = new Date(today + life * 24 * 3600 * 1000);
Run Code Online (Sandbox Code Playgroud)

new Date(today)Wed Nov 28 15:21:01 GMT+05:30 2012按预期返回今天的日期

为什么new Date(expireDate)回报Tue Nov 20 05:17:16 GMT+05:30 2012在今天的日期之前,实际上我预计会提前约会呢?

Dan*_* D. 6

这是因为你今天添加的值是一个int,它实际上超出了它Integer.MAX_VALUE,当它发生时,它从它开始Integer.MIN_VALUE.

为了解决这个问题,请将其中一个值声明为long.例如,3600可能是3600l.