Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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,计算的结束日期早于开始日期 Date startDate = new Date(); Date endDate = new Date(startDate.getTime() + (24 * 3600000 * 42)); System.out.println(startDate); System.out.println(endDate); 输出: Tue Sep 17 01:46:31 EEST 2013 Mon Sep 09 08:43:43 EEST 2013 为什么输出不正确 您的整数

计算的结束日期早于开始日期

Date startDate = new Date();
Date endDate = new Date(startDate.getTime() + (24 * 3600000 * 42));
System.out.println(startDate);
System.out.println(endDate);
输出:

Tue Sep 17 01:46:31 EEST 2013
Mon Sep 09 08:43:43 EEST 2013

为什么输出不正确

您的整数算术已溢出。一个
int
的最大可能值是(略高于20亿),但将整数文本相乘将产生362880000(约36亿)。结果是一个负数(
-666167296
),以及更早的日期

尝试将一个文本强制转换为
long
以强制执行
long
算术(或使用
long
文本):


此操作在
long
值的范围内(最大值
9223372036854775807
,超过9五百万)。

您的整数算术溢出。一个
int
的最大可能值是(略高于20亿),但将整数文本相乘将产生362880000(约36亿)。结果是一个负数(
-666167296
),以及更早的日期

尝试将一个文本强制转换为
long
以强制执行
long
算术(或使用
long
文本):


此操作在
long
值的范围内(最大值
9223372036854775807
,超过9五百万)。

24*3600000*42
362880000
,它不适合
int
。发生翻滚。通过铸造下列因素之一,强制使用长型钢:

24L * 3600000 * 42

24*3600000*42
3628800000
,它不适合
int
。发生翻滚。通过铸造下列因素之一,强制使用长型钢:

24L * 3600000 * 42

您试图添加的数字是24*3600000*42,等于362880000。这大于2147483647,这是可以用给定数据类型表示的最大值。您正在经历的是溢出,这意味着在超过最大值后,数字将返回到其最低值,即负值。因此,您正在向日期添加负值。

您尝试添加的数字是24*3600000*42,等于362880000。这大于2147483647,这是可以用给定数据类型表示的最大值。您正在经历的是溢出,这意味着在超过最大值后,数字将返回到其最低值,即负值。因此,您正在向日期添加负值。

System.out.println(24*3600000*42)谢谢奥利,它被算作负数,我让自己丢脸了:):)
System.out.println(24*3600000*42)谢谢,奥利,这是一个负数,我让自己丢脸了:)非常感谢我理解我的错误:)非常感谢我理解我的错误:)
24L * 3600000 * 42