實例詳解Java庫中的LocalDate類
Java庫中的LocalDate類
類庫設計者決定將保存時間與給時間點命名分開。所以標準Java類庫分別包含瞭兩個類:一個用來表示時間點的Date類;另一個是用來表示大傢熟悉的日歷表示法的LocalDate類。
將時間與日歷分開是一種很好的面向對象設計。通常,最好使用不同的類表示不同的概念。
不要使用構造器來構造LocalDate類的對象。實際上,應當使用靜態工廠方法代表你調用構造器。
下面表達式
LocalDate.now();
會構造一個新對象,表示構造這個對象時日期。
可以提供年、月和日來構造對應一個特定日期對象
LocalDate.of(1999,12,31);
當然,通常都希望將構造的對象保存在一個對象變量中:
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
看起來這個沒多大意義,因為這些正是構造對象時使用的那些值。不過有時可能某個日期是計算得到的,你希望調用這些方法來得到更多信息。例如plusDays方法會得到一個新的LocalDate,如果把這個方法的對象,稱為當前對象,這個新日期對象則是距當前對象指定天數的一個新日期:
LocalDate aThousandDaysLater = newYearsEve.plusDays(1000) int year = aThousandDaysLater.getYear(); //2024 int month = aThousandDaysLater.getMonthValue();//10 int day = aThousandDaysLater.getDayOfMonth();//11
LocalDate類封裝瞭實例域來維護所設置的日期。如果不查看源代碼,就不可能知道類內部的日期表示。
Java獲取上周指定日的日期
獲取上周星期一的日期
LocalDate local=LocalDate.now().with(DayOfWeek.MONDAY);
以上方法更改上周指定日隻要更改with()方法中的參數去指定過濾條件就行。就比如要獲取今天日期所屬這個禮拜的星期二的日期就可以:
LocalDate local=LocalDate.now().with(DayOfWeek.TUESDAY);
- 獲取上月某天日期
//now()當前時間為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核心基礎·卷一:基礎知識(原版10)》
總結
到此這篇關於Java庫中LocalDate類的文章就介紹到這瞭,更多相關Java庫中LocalDate類內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java核心教程之常見時間日期的處理方法
- JDK8時間相關類超詳細總結(含多個實例)
- 詳解Java關於JDK中時間日期的API
- Java 8 Time Api 使用方法技巧
- Java LocalDateTime常用操作方法