各位小伙伴们,我们又见面了,今天峰哥跟大家分享一下java8的全新日期时间处理API。在Java8之前,我们使用的日期时间是:
java.util.Datejava.util.Calendar
java.util.GregorianCalendar
日期时间与字符串之间的转换用java.text.SimpleDateFormat,这些处理日期的类有一个共同令人头疼的问题,就是这些对象都是变量,对象的数据属性可以被改变,而且还线程不安全。
如果想要线程安全,需要synchronized来辅助,这样复杂度和代码量就比较大了,而且修修补补的代码味道很差,现在好了,随着JDK8的发布,Java也提出全新的日期时间API,下面大家跟着峰哥一起探探究竟。
在jdk8中,日期的处理类都在java.time包下,常用的有:
LocalDate,LocalTime,LocalDateTime,Instant,ZonedDateTime等。下面就实战中就常用的功能进行案例测试.代码如下:
案例1
获取当前的系统时间
案例2
获取当前系统时间的年月日的属性信息
案例3
依据年月日参数,自定义一个日期
到这里,看明白没有,新的体系已经与以前不一样了,没有之前的年需要1970年起始计算,也没有了月份的从0开始计数,现在该是多少就还是多少,是不是很兴奋!
案例4
判断两个日期是否相等
新增的Api中,新出现了YearMonth和MonthDay两个类,可以判断年月和月日两个属性的值,这样就很方便对于特殊信息的比较,如银行卡的过期时间(yyyy/mm),结婚纪念日(mm/dd)。
案例5
不同日期的年月比较
案例6
两个年费的月日比较
日期研究结束,研究时间相关api。
案例7
获取当前时间
案例8
2小时后的时间怎么获得
案例9
在日期上也可以进行加减
下面的案例解决是两个日期之间的比较计算问题。
案例10
判断两个日期哪个在前,哪个在后
案例11
计算两个日期之间相差的月份或者年份
日期和字符串之间的转换是我们常见问题,必须有案例。
案例12
日期和字符串之间的转换
好了,有关jdk8的日期处理还有很多很多,比如时区等操作,由于篇幅有限,这次就分享到这里了,小伙伴们,有时间峰哥下次继续跟大家分享。