我正在将天数转换为毫秒以下:-
日* 24 * 60 * 60 * 1000
当我减法/加法时,有一天会给出适当的输出,如-
Date d= new Date(); // Sat May 25 10:16:38 IST 2019
Date d1 = new Date(d.getTime() + 1 * 24 * 3600 * 1000); //Sun May 26 10:16:38 IST 2019
Date d1 = new Date(d.getTime() - 1 * 24 * 3600 * 1000); //Sun May 25 10:16:38 IST 2019但是,当我今天试图加/减时,加/减会产生不适当的输出。今天是5月25日)
Date d= new Date();
Date newDate = new Date(d.getTime() + 25 * 24 * 3600 * 1000); //Tue Apr 30 17:36:35 IST 2019
newDate = new Date(d.getTime() - 25 * 24 * 3600 * 1000); //Wed Jun 19 03:42:10 IST 2019我不知道我为什么要得到这个输出。请帮帮我。
发布于 2019-05-25 05:21:22
25 * 24 * 3600 * 1000以int格式(多个参数为int)等于2160000000,并对此操作进行过度处理。
您应该将类型转换为long格式,并将其传递给新的日期构造函数。
例如,25天后:
Date d= new Date();
Date newDate = new Date(d.getTime() + 25L * 24 * 3600 * 1000); //Tue Apr 30 17:36:35 IST 2019但更好的解决办法是,25天后,你的时间是:
Date d = new Date();
Calendar c = Calendar.getInstance();
c.setTime( d );
c.add( Calendar.DAY_OF_YEAR , +25 );
Date newDate = c.getTime();https://stackoverflow.com/questions/56301928
复制相似问题