實(shí)例詳解Java庫中的LocalDate類
Java庫中的LocalDate類
類庫設(shè)計者決定將保存時間與給時間點(diǎn)命名分開。所以標(biāo)準(zhǔn)Java類庫分別包含了兩個類:一個用來表示時間點(diǎn)的Date類;另一個是用來表示大家熟悉的日歷表示法的LocalDate類。
將時間與日歷分開是一種很好的面向?qū)ο笤O(shè)計。通常,最好使用不同的類表示不同的概念。
不要使用構(gòu)造器來構(gòu)造LocalDate類的對象。實(shí)際上,應(yīng)當(dāng)使用靜態(tài)工廠方法代表你調(diào)用構(gòu)造器。
下面表達(dá)式
LocalDate.now();
會構(gòu)造一個新對象,表示構(gòu)造這個對象時日期。
可以提供年、月和日來構(gòu)造對應(yīng)一個特定日期對象
LocalDate.of(1999,12,31);
當(dāng)然,通常都希望將構(gòu)造的對象保存在一個對象變量中:
LocalDate newYearsEve = LocalDate.of(1999,12,31);
一旦有了一個LocalDate對象,可以用方法getYear、getMonthValue和getDayOfMonth得到年、月和日:
int year = newYearsEve.getYear();//2022 int month = newYearsEve.getMonthValue();//1 int day = newYearsEve.getDayOfMonth();//15

看起來這個沒多大意義,因?yàn)檫@些正是構(gòu)造對象時使用的那些值。不過有時可能某個日期是計算得到的,你希望調(diào)用這些方法來得到更多信息。例如plusDays方法會得到一個新的LocalDate,如果把這個方法的對象,稱為當(dāng)前對象,這個新日期對象則是距當(dāng)前對象指定天數(shù)的一個新日期:
LocalDate aThousandDaysLater = newYearsEve.plusDays(1000) int year = aThousandDaysLater.getYear(); //2024 int month = aThousandDaysLater.getMonthValue();//10 int day = aThousandDaysLater.getDayOfMonth();//11

LocalDate類封裝了實(shí)例域來維護(hù)所設(shè)置的日期。如果不查看源代碼,就不可能知道類內(nèi)部的日期表示。
Java獲取上周指定日的日期
獲取上周星期一的日期
LocalDate local=LocalDate.now().with(DayOfWeek.MONDAY);
以上方法更改上周指定日只要更改with()方法中的參數(shù)去指定過濾條件就行。就比如要獲取今天日期所屬這個禮拜的星期二的日期就可以:
LocalDate local=LocalDate.now().with(DayOfWeek.TUESDAY);
- 獲取上月某天日期
//now()當(dāng)前時間為2019.5.17
LocalDate nowDate = LocalDate.now();
System.out.println(
nowDate.minusMonths(1)
.with(MonthDay.of(nowDate.minusMonths(1).getMonth(), 3))
);
2019-04-03
Process finished with exit code 0
參考書籍:
《java核心基礎(chǔ)·卷一:基礎(chǔ)知識(原版10)》
總結(jié)
到此這篇關(guān)于Java庫中LocalDate類的文章就介紹到這了,更多相關(guān)Java庫中LocalDate類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
區(qū)塊鏈常用數(shù)據(jù)庫leveldb用java來實(shí)現(xiàn)常規(guī)操作的方法
這篇文章主要介紹了區(qū)塊鏈常用數(shù)據(jù)庫leveldb用java來實(shí)現(xiàn)常規(guī)操作,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
Java中的任務(wù)調(diào)度框架quartz詳細(xì)解析
這篇文章主要介紹了Java中的任務(wù)調(diào)度框架quartz詳細(xì)解析,Quartz 是一個完全由 Java 編寫的開源作業(yè)調(diào)度框架,為在 Java 應(yīng)用程序中進(jìn)行作業(yè)調(diào)度提供了簡單卻強(qiáng)大的機(jī)制,需要的朋友可以參考下2023-11-11
Java多線程之線程通信生產(chǎn)者消費(fèi)者模式及等待喚醒機(jī)制代碼詳解
這篇文章主要介紹了Java多線程之線程通信生產(chǎn)者消費(fèi)者模式及等待喚醒機(jī)制代碼詳解,具有一定參考價值,需要的朋友可以了解下。2017-10-10
將Mybatis升級為Mybatis-Plus的詳細(xì)過程
本文詳細(xì)介紹了在若依管理系統(tǒng)(v3.8.8)中將MyBatis升級為MyBatis-Plus的過程,旨在提升開發(fā)效率,通過本文,開發(fā)者可實(shí)現(xiàn)系統(tǒng)功能無損升級,同時享受MyBatis-Plus帶來的便捷特性,如代碼簡化和性能優(yōu)化,需要的朋友可以參考下2025-04-04
智能 AI 代碼生成工具 Cursor 安裝和使用超詳細(xì)教程
Cursor.so 是一個集成了 GPT-4 的國內(nèi)直接可以訪問的,優(yōu)秀而強(qiáng)大的免費(fèi)代碼生成器,可以幫助你快速編寫、編輯和討論代碼,這篇文章主要介紹了智能 AI 代碼生成工具 Cursor 安裝和使用介紹,需要的朋友可以參考下2023-05-05

