再简单不过的问题。
获取当前时间的毫秒数,减去一天毫秒数,就是前一天,10天的毫秒数就是前10天。
System.currentTimeMillis() - (1000 * 60 * 60 * 24 * 10);
但是!
但是,如果你要计算前100天。就会出问题!
因为 1000 * 60 * 60 * 24 * 100 超过了一个int型的最大值。
正确的写法:
System.currentTimeMillis() - (1000 * 60 * 60 * 24 * 100L);
加一个L就好了,看来不光汽车要加长。写代码也要加L。
本文讲解了在Java中计算时间的常见错误与正确实践。通过一个简单的例子,展示了直接使用整数乘法可能导致的溢出问题,并给出了使用长整型解决该问题的方法。
2635

被折叠的 条评论
为什么被折叠?



