java中long型时间戳的计算

时间:2022-06-17 02:22:49

计算时间的时候碰到的问题:

Date d = new Date();
long currtime = d.getTime(); //获取当前时间
long starttime = currtime - 30* 86400000; //当前时间减掉一个月的毫秒数搜索
System.out.println(currtime + "------"+starttime);

得到的结果竟然是currtime 要小于starttime,为什么会越减越大呢?

//因为30* 86400000 超出int的取值范围了,
long a= (long)30*(long)86400000;


总结:在进行long型数据计算的时候需要在数据前加上(long),否则默认为int类型计算,而一旦超出int取值范围那么就会出现上述问题。应避免上述问题。