"表达式中的数字溢出"操作时间戳



我正在尝试通过将时间戳设置为每次迭代的x天来迭代SQL查询。我注意到,搜索第25天后,我的日期开始恢复废话。我发现Android Studio在此代码示例中显示了第二行的"表达式中的数字溢出"警告:

int daysBack = 25;
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000 * daysBack;

getTodaysBeginningMilis是我的自我解释方法。为什么显示此警告?86400000是24小时内MILIS的数量。

似乎此部分" 86400000 * daysback"会导致数字溢出,因为两个数字都是整数,并且乘法导致整数源于界限。要解决此问题,我已经制作了所有长期类型:

long daysBack = 25L;
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000L * daysBack;

最新更新