Java8新特性 有關時間的優化

2021-08-27 00:15:03 字數 2375 閱讀 8035

這三個類最突出的特點就是都是不可變的和執行緒安全的。

localdate是不可變的日期物件;localtime是乙個不可變的時間物件;localdatetime是乙個不可變的日期時間物件。也就是相當於localdatetime是localdate和localtime兩者的乙個綜合體。三個類的操作都是相似的,這裡就講講localdatetime這個類。

localtime   localdatetime

@test

public void test()

輸出結果:

2018-09-15t14:39:17.294

2015-10-19t13:22:33

2015-10-20t13:22:33

2015-10-18t13:22:33

10

:時間戳(以unix 元年:2023年1月1日00:00:00到某個時間之間的毫秒值)

@test

public void test2()

輸出結果:

2018-09-15t06:56:35.995z

1536994595

2018-09-15t14:56:35.995+08:00

1536994595995

1970-01-01t00:01:00z

當我們需要計算兩個時間之間的毫秒數時,往往可以借助duration這個類來實現。

@test

public void test3() catch(interruptedexception e)

instant ins2=instant.now();

duration duration=duration.between(ins1, ins2);

system.out.println(duration.tomillis());

localtime lt1=localtime.now();

try catch(interruptedexception e)

localtime lt2=localtime.now();

system.out.println(duration.between(lt1, lt2).tomillis());

}

輸出結果:

1000

1000

period和duration作用類似,但是period主要是針對兩個日期之間的間隔,它主要實現的是獲取間隔有關的日期資訊,比如年月日。

period的between方法和duration的between是不同的,period的between方法的引數型別必須是localdate型別。

@test

public void test4()

輸出結果:38

14

//temporaladjuster:時間校正器

@test

public void test6() else if(dow.equals(dayofweek.saturday)) else

});system.out.println(ldt5);

}

輸出結果:

2018-09-08t20:44

2018-09-10t20:44

2018-09-09t20:44

2018-09-10t20:44

@test

public void test7()

輸出結果:

2018-09-15

2023年09月15日 15:26:18

2018-09-15t15:26:18

long ms = instant.now().toepochmilli();

int year = localdatetime.now().getyear();

int month = localdatetime.now().getmonthvalue();

int day =  localdatetime.now().getdayofmonth();

java8新特性之日期時間操作

方法 概述now 根據當前時間建立物件 of 根據指定時間建立物件 plusdays plusweeks plusmonths plusyears 向當前 localdate 物件新增幾天 幾周 幾月 幾年 minusdays minusweeks minusmonths minusyears 從當...

JAVA8新特性Stream學習中

stream是資料渠道,用於運算元據源 集合,陣列等 所生成的元素序列。集合講的是資料,流講的是計算 注 stream自己不會儲存元素 stream不會改變源物件。相反,他們會返回乙個持有結果的新的stream stream操作是延遲執行的。這意味著他們會等到需要結果的時候才執行。步驟 建立stre...

java8新特性之一lambda

lambda結合函式式介面使用,函式式介面 functional inte ce 就是乙個有且僅有乙個抽象方法,但是可以有多個非抽象方法的介面。1 可選型別宣告 不需要宣告引數型別,即直接可以寫引數,不需要宣告型別,編譯器可以自動識別型別 2 可選的引數圓括號 乙個引數可以不要圓括號,多個引數需要圓...