java中long型时间戳的计算


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

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取值范围那么就会出现上述问题。应避免上述问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM