背景

今天在跑定时任务的过程中,发现有一个任务在设置数据的查询时间范围异常,出现了开始时间戳比结束时间戳大的奇怪现象,计算时间戳的代码大致如下。

package com.lingyejun.authenticator;

public class IntegerTest {

public static void main(String[] args) {

long endTime = System.currentTimeMillis();

long startTime = endTime - 30 * 24 * 60 * 60 * 1000;

System.out.println("end : " + endTime);

System.out.println("start : " + startTime);

}

}

先放出结论:因为java中整数默认是int类型,在计算的过程中30 * 24 * 60 * 60 * 1000计算结果大于Integer.MAX_VALUE,所以出现了数据溢出,从而导致了计算结果不准确的问题。

验证

我们将上面的代码稍稍改造一下,方便我们确认定位问题,调整后的代码如下:

package com.lingyejun.authenticator;

public class IntegerTest {

public static long calcStartTime(long endTime, long minusMills) {

System.out.println("end : " +

java 时间戳最大值_Java中在时间戳计算的过程中遇到的数据溢出问题解决相关推荐

  1. Java中在时间戳计算的过程中遇到的数据溢出问题

    背景 今天在跑定时任务的过程中,发现有一个任务在设置数据的查询时间范围异常,出现了开始时间戳比结束时间戳大的奇怪现象,计算时间戳的代码大致如下. package com.lingyejun.authe ...

  2. 均方距离计算公式_Excel2013中通过公式计算方差与均方差来反映数据的偏移程度...

    说起方差.均方差,可能还要回想一下,毕竟那是很早以前接触的(初中数学里面就有的).方差(英文Variance)用来度量随机变量和其数学期望(即均值)之间的偏离程度,多用于零件测绘行业.均方差也叫标准差 ...

  3. java自动编号_java实现自动编号系统(类似于word中自动编号)

    功能需求: 1,根据章节和当前标题数量,获得下一个编号,满足不同等级编号需求.如同word中的自动编号功能一样 2,可以实现在freemarker中直接调用生成方法,得到正确的编号 目标:即在free ...

  4. java menuitem 图标_java – 如何以编程方式更改ActionBar中的MenuItem图标

    如何以编程方式更改ActionBar中的MenuItem图标?我试着用 MenuItem menuItem = (MenuItem)findViewById(R.id.action_settings) ...

  5. HEVC中变换(Transform)过程中的scaling操作的理解

    最近因为毕设需要,花了比较多的时间在研究HEVC的变换过程上,现将自己的一些理解记下来,以免自己忘了,也供大家指正批评--- 首先,先让我们来看一下HEVC中变换模块的上下环境,即变换模块所在的位置: ...

  6. as安装过程中gradle_电磁阀在安装过程中需注意的一些细节

    在安装电磁阀这类产品时,用户应注意一些基本的操作问题.虽然电磁阀产品的质量是厂家保证的,但在实际工作状态下,电磁阀的安装是否正确也会对电磁阀产品的效率和稳定性产生较大影响,并会加速电磁阀零部件的磨损率 ...

  7. ctex中dvi格式_LaTex使用过程中的各种类型文件说明

    最近没事在捣鼓LaTex,在网上看到诸多大牛都在用LaTex写个人简历,于是也就下载一个模板,结果发现自己那半吊子的LaTex水平实在烂的不行,发现很多文件都没见过.于是乎就在Internet上搜了一 ...

  8. Ubuntu虚拟机中VCS安装和启动过程中遇到的问题总结

    上篇文件写完后,很多人留言说VCS启动有些问题在文中没有解决,这里总结汇总了下从VCS安装好以后,临时license授权到使用VCS成功运行并用verdi dump波形这个过程中可能会遇到的一些问题及 ...

  9. linux中license路径,Elasticsearch安装过程中的license问题解决办法

    Elasticsearch安装过程中的license问题解决办法 1.git clone git://github.com/mobz/elasticsearch-head.git 2.cd elast ...

最新文章

  1. Nginx下配置Http Basic Auth保护目录
  2. 设计模式之反射与配置文件
  3. hdu 5092 线裁剪(纵向连线最小和+输出路径)
  4. AtCoder AGC030C Coloring Torus (构造)
  5. java 精通_你真的精通Java吗?
  6. strstr函数_leetcode第28题实现strStr()
  7. 如何在CentOS上创建Kubernetes集群
  8. 对POSIX和SystemV消息队列优化:用户态消息队列
  9. pom模块依赖关系梳理
  10. Nali:一个离线查询 IP 地理信息和 CDN 提供商的终端利器
  11. 修改marathon源码后,如何编译,部署到集群中?
  12. android sharedpreference 清空,Android 从SharedPreferences中存储,检索,删除和清除数据...
  13. 为什么不建议Java程序员用阿里巴巴规范,而使用GoogleGuava编程
  14. DB2 数据库密码过期
  15. 转调小程序(练口琴时用的)
  16. Java实体类(entity)作用
  17. 如何维持手机电池寿命_教你如何让自己的手机电池寿命多用两年
  18. bootstrap常用样式整理
  19. springboot+dubbo+tomcat部署出错问题
  20. 苹果电脑常用的计算机英语怎么说,史上最强苹果电脑Mac Pro发布 有啥亮点(中英文)...

热门文章

  1. java cstring_CString 操作指南
  2. 各种格式的文档互相转换(MOBI_to_PDF)
  3. 使用GSAP的动画库为Bootstrap传送带制作动画
  4. MVVM理解 ——(2)数据劫持
  5. 训练数据不够怎么造?yolo5 最有用的trick 之数据增强详解
  6. 无边落木萧萧下,不尽长江滚滚来。
  7. matlab:人脸识别
  8. 高效遍历HashMap的方式,你知道的有几种呢
  9. 路由策略(acl、IP-prefix、route-policy)
  10. 后台管理系统,前端框架