Java8 开发小技巧 - 获取两个时间的时间差
日常开发中经常会需要计算一个方法执行了多久:
long startTime = System.currentTimeMillis();
//模拟方法执行,花费 2s
TimeUnit.SECONDS.sleep(2);
long endTime = System.currentTimeMillis();
System.out.println("花费 " + (endTime - startTime) + " 毫秒");
java8 之后提供了新的时间日期处理类,那么 Java8 之后就可以使用 ChronoUnit:
LocalDateTime startTime = LocalDateTime.now();
//模拟方法执行,花费 2s
TimeUnit.SECONDS.sleep(2);
LocalDateTime endTime = LocalDateTime.now();
System.out.println("花费 " + ChronoUnit.MILLIS.between(startTime, LocalDateTime.now()) + " 毫秒");
System.currentTimeMillis() 只能精确到毫秒,如果你有更高的要求,要精确到纳秒,或者只需要秒、分钟等,java8 可以轻松搞定,利用 ChronoUnit 的不同枚举单位计算即可:
- CENTURIES 代表一个世纪概念的单位。
- DAYS 代表一天概念的单位
- DECADES 代表十年概念的单位
- ERAS 代表一个时代概念的单位
- FOREVER 代表永恒概念的人工单位
- HALF_DAYS 代表 AM / PM 中使用的半天概念的单位
- HOURS 表示一小时概念的单位
- MICROS 表示微秒概念的单位
- MILLENNIA 代表千年概念的单位
- MILLIS 表示毫秒概念的单位
- MINUTES 表示一分钟概念的单位
- MONTHS 代表一个月概念的单位
- NANOS 代表纳秒概念的单位,是支持的最小时间单位
- SECONDS 表示一秒概念的单位。
- WEEKS 表示一周概念的单位。
- YEARS 代表一年概念的单位
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论