實(shí)例詳解Java庫中的LocalDate類
Java庫中的LocalDate類
類庫設(shè)計(jì)者決定將保存時(shí)間與給時(shí)間點(diǎn)命名分開。所以標(biāo)準(zhǔn)Java類庫分別包含了兩個(gè)類:一個(gè)用來表示時(shí)間點(diǎn)的Date類;另一個(gè)是用來表示大家熟悉的日歷表示法的LocalDate類。
將時(shí)間與日歷分開是一種很好的面向?qū)ο笤O(shè)計(jì)。通常,最好使用不同的類表示不同的概念。
不要使用構(gòu)造器來構(gòu)造LocalDate類的對象。實(shí)際上,應(yīng)當(dāng)使用靜態(tài)工廠方法代表你調(diào)用構(gòu)造器。
下面表達(dá)式
LocalDate.now();
會構(gòu)造一個(gè)新對象,表示構(gòu)造這個(gè)對象時(shí)日期。
可以提供年、月和日來構(gòu)造對應(yīng)一個(gè)特定日期對象
LocalDate.of(1999,12,31);
當(dāng)然,通常都希望將構(gòu)造的對象保存在一個(gè)對象變量中:
LocalDate newYearsEve = LocalDate.of(1999,12,31);
一旦有了一個(gè)LocalDate對象,可以用方法getYear、getMonthValue和getDayOfMonth得到年、月和日:
int year = newYearsEve.getYear();//2022 int month = newYearsEve.getMonthValue();//1 int day = newYearsEve.getDayOfMonth();//15
看起來這個(gè)沒多大意義,因?yàn)檫@些正是構(gòu)造對象時(shí)使用的那些值。不過有時(shí)可能某個(gè)日期是計(jì)算得到的,你希望調(diào)用這些方法來得到更多信息。例如plusDays方法會得到一個(gè)新的LocalDate,如果把這個(gè)方法的對象,稱為當(dāng)前對象,這個(gè)新日期對象則是距當(dāng)前對象指定天數(shù)的一個(gè)新日期:
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ù)去指定過濾條件就行。就比如要獲取今天日期所屬這個(gè)禮拜的星期二的日期就可以:
LocalDate local=LocalDate.now().with(DayOfWeek.TUESDAY);
- 獲取上月某天日期
//now()當(dāng)前時(shí)間為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)文章
支票金額大寫轉(zhuǎn)換示例(金額大寫轉(zhuǎn)換器)
這篇文章主要介紹了支票金額大寫轉(zhuǎn)換示例(金額大寫轉(zhuǎn)換器),需要的朋友可以參考下2014-02-02SpringCloud+Redis實(shí)現(xiàn)Api接口限流防止惡意刷接口
接口限流是為了保護(hù)系統(tǒng)和服務(wù),防止因?yàn)檫^多的請求而崩潰,本文主要介紹了SpringCloud+Redis實(shí)現(xiàn)Api接口限流防止惡意刷接口,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Java?生成透明圖片的設(shè)置實(shí)現(xiàn)demo
這篇文章主要為大家介紹了Java?生成透明圖片的設(shè)置實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Java反射機(jī)制在Spring IOC中的應(yīng)用詳解
這篇文章主要介紹了Java反射機(jī)制在Spring IOC中的應(yīng)用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Java 判斷兩個(gè)字符串是否由相同的字符組成的實(shí)例
今天小編就為大家分享一篇Java 判斷兩個(gè)字符串是否由相同的字符組成的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Java調(diào)用opencv實(shí)現(xiàn)圖片矯正功能
這篇文章主要為大家詳細(xì)介紹了Java如何調(diào)用opencv實(shí)現(xiàn)圖片矯正功能,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09