java8 time计算时间差
最近使用Java8编写代码时,需要计算时间差,现整理如下
前言
本次使用了Java8提供的ChronoUnit工具类,它主要提供以下几种时间维度
枚举
| 枚举 | 说明 |
|---|---|
| NANOS | 毫微秒(毫秒的1000000分之一) |
| MICROS | 微秒(毫秒的1000分之一) |
| MILLIS | 毫秒 |
| SECONDS | 秒 |
| MINUTES | 分钟 |
| HOURS | 小时 |
| HALF_DAYS | 半天 |
| DAYS | 天 |
| WEEKS | 周 |
| MONTHS | 月 |
| YEARS | 年 |
| DECADES | 十年 |
| CENTURIES | 世纪(百年) |
| MILLENNIA | 千年 |
| ERAS | 纪元(1000_000_000L年) |
枚举提供一个betwwen方法,接收两个参数,都是Temporal类型。
Temporal是LocalDate、LocalTime、LocalDateTime的声明接口,因此可以直接传递我们常用的时间类。
示例
LocalDateTime time1 = LocalDateTime.of(2019, 11, 1, 0, 0);
LocalDateTime time2 = LocalDateTime.of(2019, 12, 2, 0, 0);
System.out.println("===输出秒===");
System.out.println(ChronoUnit.SECONDS.between(time1, time2));
System.out.println("===========");
System.out.println("===输出小时===");
System.out.println(ChronoUnit.HOURS.between(time1, time2));
System.out.println("===========");
System.out.println("===输出半天===");
System.out.println(ChronoUnit.HALF_DAYS.between(time1, time2));
System.out.println("===========");
System.out.println("===输出天===");
System.out.println(ChronoUnit.DAYS.between(time1, time2));
System.out.println("===========");
System.out.println("===输出周===");
System.out.println(ChronoUnit.WEEKS.between(time1, time2));
System.out.println("===========");
System.out.println("===输出月===");
System.out.println(ChronoUnit.MONTHS.between(time1, time2));
System.out.println("===========");
System.out.println("===输出年===");
System.out.println(ChronoUnit.YEARS.between(time1, time2));
System.out.println("===========");
输出结果
===输出秒===
2678400
===========
===输出小时===
744
===========
===输出半天===
62
===========
===输出天===
31
===========
===输出周===
4
===========
===输出月===
1
===========
===输出年===
0
===========
java8 time计算时间差的更多相关文章
- Android计算时间差
想要写个根据消耗时长来确定开始结束时间的小工具,发现Android处理时间上有点累,可能是我没找到合适的方法吧,先把我的解决办法贴出来,有好的解决方法还希望提醒一下: 1.根据时间字符串获取毫秒数 p ...
- 【转载】c/c++在windows下获取时间和计算时间差的几种方法总结
一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...
- C#计算时间差值
/// <summary> /// 计算时间差值 /// </summary> /// <param name="DateTime1">< ...
- 登录超时自动退出,计算时间差-b
// 此方法适用于所有被创建过的controller,且当前controller生命周期存在,如有错误的地方望大神斧正 // 说一下我们的需求和实现原理,需求:在点击home键退出但没有滑飞它,5分 ...
- python分页和session和计算时间差
分页 #!/usr/bin/env python # -*- coding:utf-8 -*- class Pagenation: def __init__(self,current_page,all ...
- js计算时间差,包括计算,天,时,分,秒
收集两个计算时间差的计算方法代码片段: var date1=new Date(); //开始时间 var date2=new Date(); //结束时间 var date3=date2.getTim ...
- Android中计算时间差的实现方法
今天为“至简天气”增加了一项功能:在启动时根据上次更新数据的时间判断是否有必要更新数据,因为 weather.com.cn 的实况数据貌似是25分钟才会刷新一次,只有在据上次更新的时间达25分钟以上才 ...
- datetime 计算时间差
计算时间差: .date() # 格式化 .timedelta() # 时间差 import datetime # 今天 today = datetime.datetime ...
- excel计算时间差值
excel计算时间差值 2018/10/1 10:59:00 减去 2018/9/21 1:05:13 获取 多少天. 如1.2天.这种. ==
随机推荐
- 安装sqlserver导致80端口被占用解决方法
安装sqlserver导致80端口被占用解决方法 系统占用的端口一般都是微软官方的产品占用的.所以这个时候主要考虑到几个服务: SQL Server导致.其中很有可能是SQL Server Repor ...
- 恩佐夫博弈+JAVA大数
题意:http://acm.hdu.edu.cn/showproblem.php?pid=5973 根号5复制后200位就行了,因为BigDecimal不支持开根号,除法二分开根. import ja ...
- 关于STM32的IAP与APP互相跳转
关于STM32的IAP与APP互相跳转 之前做了一个不带系统的IAP与APP互相跳转,在网上找了资料后,很顺畅就完成了,后来在IAR集成开发环境下,IAP无系统,APP用UCOS系统做互相跳转出现了很 ...
- windows下安装mongoDB(zip版)
windows下安装mongoDB(zip版) 下面说明如何在win10下用zip包安装好mongoDB数据库 首先要先从网上下载mongoDB的zip包 http://dl.mongodb.org/ ...
- Scala学习十三——集合
一.本章要点 所有集合都扩展自Iterable特质; 集合有三大类,分别为序列,集和映射; 对于几乎所有集合类,Scala都同时提供可变和不可变的版本; Scala列表要么是空的,要么拥有一头一尾,其 ...
- Java写学生管理系统
package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2]; for (int i=0;i<s ...
- 在Windows中 , 如何用leakdiag “自动”检测内存泄露 (自动记录日志)
一.基本用法 在LeakDiag中选择aaa.exe 然后选择Windows Heap Allocator来跟踪heap的使用,按start开始,等一会按log,然后再stop 会在c:\leakdi ...
- flutter问题集锦
现在的多平台开发很多啦,目前主流的救赎react native 和weex了,其他的旧的就不说了,新出来的gomobile目前基本无人使用,底层的很多原生对接还没有完善,flutter发布了第一版正式 ...
- 7.使用EXPLAIN 来分析SQL和表结构_2
possible_keys ------ 显示可能应用在这张表的索引,一个或多个 查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被实际查询使用 key ------ 实际使 ...
- 利用python3 爬取 网易云 上 周杰伦所有专辑,歌曲,评论,并完成可视化分析已经歌曲情绪化分析
这篇文章适合于python爱好者,里面可能很多语句是冗长的,甚至可能有一些尚未发现的BUG,这个伴随着我们继续学习来慢慢消解吧.接下来 我把里面会用到的东西在这里做一个简单总结吧:本文用到了两门解释性 ...