localdate now = localdate.now();// 2018/8/25
localdate start = localdate.parse("2018-07-20", datetimeformatter.ofpattern("yyyy-mm-dd"));
long daysdiff = chronounit.days.between(start, now);
long monthdiff = chronounit.months.between(start, now);
long yeardiff = chronounit.years.between(start, now);
system.out.println("now : " + now);
system.out.println("start : " + start);
system.out.printf("相差:%d年%d月%d天",yeardiff,monthdiff,daysdiff);
now : 2018-08-25
start : 2018-07-20
相差:0年1月36天
檢視源**可知chronounit
是乙個列舉,包含了nanos
(納秒)到years
(年)等一些例項。
##period類計算時間差
localdate today = localdate.now();
system.out.println("today : " + today);
localdate birthdate = localdate.of(2018, month.july, 20);// localdate.of(2018, 7, 20)
system.out.println("birthdate : " + birthdate);
period p = period.between(birthdate, today);
system.out.printf("年齡 : %d 年 %d 月 %d 日", p.getyears(), p.getmonths(), p.getdays());
年齡 : 0 年 1 月 5 日
**注意:**大家發現上面兩者時間差的區別沒有。1.因為
chronounit
獲取年、月、日的時候分別都進行了一次between
,所以每次獲取的都是完整的時間差。而period
是先執行between
後,再通過get方法獲取年、月、日2.
localdate
有兩種解析日期的方法(parse、of)各種方法依據實際情況而用效果更佳
##instant、duration配合計算瞬時值
有時候會在**中列印計算程式執行的時間,比如跑多執行緒的時候
既然用的是jdk8版本,就用逼格更高的操作
instant inst1 = instant.now();
system.out.println("inst1 : " + inst1);
instant inst2 = inst1.plus(duration.ofseconds(10));
system.out.println("inst2 : " + inst2);
system.out.println("毫秒 : " + duration.between(inst1, inst2).tomillis());
system.out.println("秒 : " + duration.between(inst1, inst2).getseconds());
inst1 : 2018-08-25t02:30:45.872z
inst2 : 2018-08-25t02:30:55.872z
毫秒 : 10000
秒 : 10
注意:instant inst3 = new date().toinstant();
JDK1 8的新特性
jdk1.8之前的介面不可以有方法體,但從jdk1.8開始,介面中的方法可以帶有方法體為什麼要新增這個特性?介面就是為了定義乙個標準,這個標準要求所有的實現類實現這些抽象方法。但存在某些方法,所有的實現類 都是一樣的,索性就把這些 挪到介面中。使用的方法?通過default來修飾這個方法public...
JDK1 8新特性簡介
可以用static default來定義介面方法 用default來定義普通方法,這樣子類就不用強制覆寫這個方法了。用static來定義靜態方法 專給lanmda使用的介面加上annotation functionalinte ce 其中只能有乙個方法 使用 引數 程式執行語句 引數 簡單返回 引數...
JDK1 8 新特性(全)
hashmap資料結構 在jdk1.8中對hashmap等map集合的資料結構優化。hashmap資料結構的優化 知識點 1 原來的hashmap採用的資料結構是雜湊表 陣列 鍊錶 hashmap預設大小是16,乙個0 15索引的陣列,2 如何往裡面儲存元素 首先呼叫元素的hashcode 方法,計...