代码如下:
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
这里有什么问题?
答案 0 :(得分: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