jdk8裡面新時間的使用

2021-09-29 07:21:02 字數 3743 閱讀 1519

localdatetime time = localdatetime.

now();

system.out.

println

(time)

; localdatetime of = localdatetime.of(

2015,10

,22,10

,10,10

);system.out.

println

(of)

;

localdatetime plustime = time.

plusyears(2

);system.out.

println

(plustime)

; localdatetime minustime = time.

minusyears(2

);system.out.

println

(minustime)

;

system.out.

println

(time.

getyear()

);system.out.

println

(time.

getmonthvalue()

);system.out.

println

(time.

getdayofmonth()

);system.out.

println

(time.

gethour()

);system.out.

println

(time.

getminute()

);system.out.

println

(time.

getsecond()

);

時間戳(從unix元年開始算: 2023年1月1日到某個時間之間的毫秒差)

預設獲取utc時區的時間和我們的時間差8個小時,但是這裡獲取的時間還不是時間戳

instant instant = instant.

now();

system.out.

println

(instant)

;

時區糾正

offsetdatetime offsetdatetime = instant.

atoffset

(zoneoffset.

ofhours(8

)); system.out.

println

(offsetdatetime)

;

轉為毫秒

//轉為毫秒

long milli = instant.

toepochmilli()

; system.out.

println

(milli)

;//1572783543272

當前時間轉為毫秒

long newsecond1 = localdatetime.

now().

toinstant

(zoneoffset.of(

"+8"))

.toepochmilli()

;

相對於元年做乙個時間運算 意義不明

//相較於元年做乙個運算

instant instant1 = instant.

ofepochsecond(60

);system.out.

println

(instant1)

;

@test

public

void

test3()

throws interruptedexception

//計算兩個日期之間的間隔

@test

public

void

test4()

比較簡單的型別

@test

public

void

test5()

自定義的

下乙個工作日

public

static localdate nextworkday

(localdate date)

else

if(dayofweek.

equals

(dayofweek.saturday)

)else})

;}

public

static localdate nextmarryday

(localdate date,

int marrymon,

int marryday)

else

if(t1.

getmonthvalue()

== marrymon)

else

}else})

;}

都是可以用的

@test

public

void

test6()

使用自帶的格式化

datetimeformatter dtf = datetimeformatter.iso_date;

localdatetime ldt = localdatetime.

now();

string strdate = ldt.

format

(dtf)

;//2019-11-03

自定義格式化

datetimeformatter dtf2 = 

datetimeformatter.

ofpattern

("yyyy年mm月dd日 hh:mm:ss");

string strdate2 = dtf2.

format

(ldt)

; system.out.

println

(strdate2)

;

將字串轉換回來 (報錯)

datetimeformatter dtf2 = 

datetimeformatter.

ofpattern

("yyyy年mm月dd日 hh:mm:ss");

localdatetime newdate = ldt.

parse

("2023年11月03日 23:57:21"

, dtf2)

; system.out.

println

(newdate)

;

獲取所有時區

@test

public

void

test8()

獲取當前日本東京的時間

@test

public

void

test9()

JDK8介面新特性

jdk8中,介面中可以定義靜態的非抽象的方法,直接使用介面名呼叫靜態方法,但是它的實現類的類名或者例項卻不可以呼叫介面中的靜態方法。也可以定義普通的非抽象的方法,普通的非抽象方法要在返回值前加上default,對於普通的非抽象方法必須使用子類的例項來呼叫。如果有多個介面定義了相同的預設方法,實現多個...

JDK8的新特性

這兩天開始看jdk8的新特性,先看了lembda表示式和stream,就乙個感覺,優雅。趕緊將這兩天的成果總結一下 lembda表示式是乙個簡潔 可傳遞的匿名函式,實現了把 塊賦值給乙個變數的功能 格式就是 parameters expression,需要注意的是 引數可以為空 引數為乙個值得時候,...

jdk8的新特性

lambda表示式 格式為 符號左邊為表示式需要的所有引數 符號右邊為表示式要執行的功能 將之前的匿名內部內作為引數傳遞直接可以使用lambda表示式完成 比如lists new arraylist new arraylist stirng public int compare string a,s...