0
life  = 91
today = System.currentTimeMillis()
expireDate = new Date(today + life * 24 * 3600 * 1000);

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

4

2 に答える 2

6

これは、今日追加する値が int であり、実際には を超えているためInteger.MAX_VALUEですInteger.MIN_VALUE

これを修正するには、値の 1 つを として宣言しますlong。たとえば36003600l.

于 2012-11-28T09:58:40.517 に答える
1

試す

int life = 91;
long today = System.currentTimeMillis();
Date expireDate = new Date(today + life * 24 * 3600 * 1000L);
System.out.println(expireDate);

版画

Wed Feb 27 10:03:32 GMT 2013

注:私1000Lはオーバーフローを防ぐために使用するのでlifelong.

于 2012-11-28T10:04:15.890 に答える