Java8 开发小技巧 - 获取两个时间的时间差

发布于 2024-06-18 22:23:40 字数 1317 浏览 15 评论 0

日常开发中经常会需要计算一个方法执行了多久:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
24 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文