Java 8 新的日期相關 API

2021-09-24 08:06:31 字數 3835 閱讀 1381

使用of方法建立例項,靜態不可變物件

localdate localdate = localdate.of(2019, 5, 20); // 建立 localdate 物件

localtime localtime = localtime.of(22, 5, 23); // 建立 localtime 物件

localdatetime localdatetime = localdatetime.of(localdate, localtime); // 使用 localdate 和 localtime 建立 localdatetime 物件

localdatetime localdatetime1 = localdatetime.of(2019, 5, 20, 22, 22, 33); // 根據指定日期時間建立 localdatetime 建立 localdatetime 物件

複製**

localdatetime物件由localdate物件 和localtime物件組成。

合併了 localdate 和 localtime,可以從localdatetime中分離出localdatelocaltime物件

localdate localdate = localdatetime.tolocaldate();

localtime localtime = localdatetime.tolocaltime();

複製**

localdatetime localdatetime = localdatetime.plusyears(1);

localdatetime localdatetime = localdatetime.plusyears(1);

localdatetime localdatetime = localdatetime.plusdays(1);

localdatetime localdatetime = localdatetime.plusweeks(1);

localdatetime localdatetime = localdatetime.plushours(1);

localdatetime localdatetime = localdatetime.plusminutes(1);

localdatetime localdatetime = localdatetime.plusseconds(1);

localdatetime localdatetime = localdatetime.plusminutes(1);

localdatetime localdatetime = localdatetime.plusnanos(1);

複製**

方法名

是否靜態方法

方法描述

between

是建立兩個時間點之間的 interval

from

是由乙個臨時時間點建立intervalof是

由它的組成部分建立 interval 的例項

parse

是由字串建立 interval 的例項

addto

否建立該 interval 的副本,並將其疊加到某個指定的 temporal 物件

get否

讀取該 interval 的狀態

isnegative

否檢查該 interval 是否為負值,不包含零

iszero

否檢查該 interval 的時長是否為零

miuns

否通過減去一定的時間建立該 interval 的副

multipliedby

否將 interval 的值乘以某個標量建立該 interval 的副本

negated

否以忽略某個時長的方式去建立該 interval 的副本

plus

否以增加某個指定的時長的方式建立該 interval 的副本

subtractfrom

否從指定的 termporal 物件中減去該 interval

方法名是否是靜態方法

描述from

是依據傳入的 temporal 物件建立物件例項

now是

依據系統時鐘建立 temporal 物件of是

由 temporal 物件的某個部分建立該物件的例項

parse

是由字串建立 temporal 物件的例項

atoffset

否由字串建立 temporal 物件的例項

atzone

否將 temporal 物件和某個時區相結合

format

否使用某個指定的格式器,將 temporal 物件轉換成為字串

get否

讀取 temporal 物件的某一部分的值

minus

否建立 temporal 物件的乙個副本,通過將當前 temporal 物件的值減去一定的時長建立該副本

plus

否建立 temporal 物件的乙個副本,通過將當前 temporal 物件的值加上一定的時長建立該副本

with

否以該 temporal 物件為模板,對某些狀態進行修改建立該物件的副本

進行更加複雜的操作,可以使用過載版本的 with 方法傳遞乙個更多定製化的 temporaladjuster 物件。

方法名描述

dayofweekinmonth

建立乙個新的日期,它的值為同乙個月中每一周的第幾天

firstdayofmonth

建立乙個新的日期,它的值為當月的第一天

firstdayofnextmonth

建立乙個新的日期,它的值為下月的第一天

firstdayofnextyear

建立乙個新的日期,它的值為明年的第一天

firstdayofyear

建立乙個新的日期,它的值為當年的第一天

firstinmonth

建立乙個新的日期,它的值為同乙個月中,第乙個符合星期幾要求的值

lastdayofmonth

建立乙個新的日期,它的值為下月的最後一天

lastdayofnextmonth

建立乙個新的日期,它的值為下月的最後一天

lastdayofnextyear

建立乙個新的日期,它的值為明年的最後一天

lastdayofyear

建立乙個新的日期,它的值為今年的最後一天

lastinmonth

建立乙個新的日期,它的值為同乙個月中,最後乙個符合星期幾要求的值

next/previous

建立乙個新的日期,並將其設定為日期調整後或者調整前,前乙個符合指定星期幾要求的日期

nextorsame/previousorsame

建立乙個新的日期,並將其值設定為日期調整後或者調整前,第乙個符合指定星期幾要求的日期,如果該日期已經符合要求,直接返回該物件

以上 jdk 提供的仍然無法滿足要求,可以建立自己的temporaladjuster

@functionalinte***ce

public

inte***ce

temporaladjuster

複製**

實現temporaladjuster介面,然後在 adjustinto 方法中實現自己的邏輯。

public

void

testtemporaladjuster

()複製**

Java 8 新日期和時間API

日期類 例 2018 02 08 只包含日期,不可變類,類定義 public final class localdate implements temporal,temporaladjuster,chronolocaldate,serializable 複製 localdate now locald...

java8新特性之日期時間操作

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

Java 8中stream相關用法

jdk1.8新加了lambda表示式,可以幫助開發者更好的,更高效的實現一些通常複雜的 實現 1.list轉換map 2.從實體中取出id集合,去重 listlist page.stream filter m m.getid 0 map k k.getid distinct collect coll...