Java 奇怪的约会行为?
new Datetoday按预期返回今天的日期11月28日星期三15:21:01 GMT+2012年5:30Java 奇怪的约会行为?,java,date,Java,Date,new Datetoday按预期返回今天的日期11月28日星期三15:21:01 GMT+2012年5:30 为什么新的DateexpireDate返回的是比今天早很多的11月20日05:17:16 GMT+05:30 2012,而我实际预期的日期是提前的呢?这是因为您添加到今天的值是一个int,它实际上超出了Integer.MAX\u值,当这种情况发生时,它从Integer.MIN\u值开始返回 要解决此问题,请将其中一个值声明为long。例如,3600可能是3600升。试试看 life =
为什么新的DateexpireDate返回的是比今天早很多的11月20日05:17:16 GMT+05:30 2012,而我实际预期的日期是提前的呢?这是因为您添加到今天的值是一个int,它实际上超出了Integer.MAX\u值,当这种情况发生时,它从Integer.MIN\u值开始返回 要解决此问题,请将其中一个值声明为long。例如,3600可能是3600升。试试看
life = 91
today = System.currentTimeMillis()
expireDate = new Date(today + life * 24 * 3600 * 1000);
印刷品
int life = 91;
long today = System.currentTimeMillis();
Date expireDate = new Date(today + life * 24 * 3600 * 1000L);
System.out.println(expireDate);
注意:我使用1000L来防止溢出,也会延长寿命。因为今天很长,我认为情况并非如此。今天应该投一个长的,然后再加上生命*24*3600*1000。生命应该投一个长的*,但我没有想到乘法。
Wed Feb 27 10:03:32 GMT 2013