2014-03-06 157 views

回答

82

只需使用withDayOfMonth,並lengthOfMonth()

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.withDayOfMonth(1); 
LocalDate end = initial.withDayOfMonth(initial.lengthOfMonth()); 
+0

僅供參考請參閱其他答案 – assylias

0

試試這個:

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.withDayOfMonth(1);   
LocalDate end = initial.withDayOfMonth(initial.getMonthOfYear().getLastDayOfMonth(false)); 
System.out.println(start); 
System.out.println(end); 

你可以找到的願望輸出,但需要考慮的參數的照顧真/假getLastDayOfMonth方法

該參數表示跳躍今年

+0

沒有必要使用'getLastDayOfMonth' - 請參閱我的答案以獲得更簡單的方法。 –

6

喬恩長柄水杓答案是正確的,並已實至名歸我給予好評,只是增加了對完整性此稍有不同的解決方案:

import static java.time.temporal.TemporalAdjusters.lastDayOfMonth; 

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.withDayOfMonth(1); 
LocalDate end = initial.with(lastDayOfMonth()); 
73

的API旨在支持緊密匹配業務需求的解決方案

import static java.time.temporal.TemporalAdjusters.*; 

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.with(firstDayOfMonth()); 
LocalDate end = initial.with(lastDayOfMonth()); 

但是,喬恩的解決方案也很好。

+0

與此一起,使用專門製作的API資源來處理這個特定的問題。 – jpangamarca

相關問題