0

代码如下:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String logTime = format.format(new Date((format.parse("2013-6-30").getTime()+25*24*3600*1000)));
    String logTime1 = format.format(new Date((format.parse("2013-6-30").getTime()+24*24*3600*1000)));
    System.out.println("logTime:  "+logTime);
    System.out.println("logTime1:  "+logTime1);

这是输出:

  logTime:  2013-06-05
  logTime1:  2013-07-24

这里有什么问题?

4

1 回答 1

5

你有一个溢出。尝试

25L * 24*3600*1000

所以值很长。你的 IDE 应该强调你所拥有的东西会溢出。

在此处输入图像描述

这会打印一个明显不正确的数字。

-2134967296

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
long time = format.parse("2013-6-30").getTime();
String logTime = format.format(new Date(time + 25L * 24 * 3600 * 1000));
String logTime1 = format.format(new Date(time + 24L * 24 * 3600 * 1000));
System.out.println("time + 25d:  " + logTime);
System.out.println("time + 24d:  " + logTime1);

印刷

time + 25d:  2013-07-25
time + 24d:  2013-07-24
于 2013-08-01T05:54:13.297 回答