原创不易,转载请注明来源 http://blog.csdn.net/z736232402/article/details/52279278
对于求一个月后之类的时间,楼主懒得计算,基本就是获得当前时间戳,然后,加上毫秒数,得到的时间戳,再通过date转换。然后,今天在计算的时候,发现每次打印出来的log反而是十几天前的,百思不得其解,追踪到源代码,发现
final long cur = System.currentTimeMillis();
final String startTime = DEF_FORMAT.format(new Date(cur));
final String endTime = DEF_FORMAT.format(new Date(cur+1000 * 3600 * 24 * 30));
final String halfTime = DEF_FORMAT.format(new Date(cur+cur + 1000 * 3600 * 24 * 15));
然后发现,这里的curmonth居然比cur还小,而15天却是正确的。最后,通过把1000 * 3600 * 24 * 30打印出来,发现,这货是负数。然后,才想到,可能超过了int的最大范围,算了下,大概15天就比int最大范围大点,而30刚好就超过了,解决方法也很简单,改成cur+1000L * 3600 * 24 * 30,将后面的先转成long就好了
获取一个月后时间戳失败
最新推荐文章于 2023-02-28 19:49:19 发布