Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 奇怪的约会行为?_Java_Date - Fatal编程技术网

Java 奇怪的约会行为?

Java 奇怪的约会行为?,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 =

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  = 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