使用threeten,LocalDate获取月份的第一天和最后一天

我有一个LocalDate需要得到本月的第一天和最后一天。 我怎么做?

例如。 13/2/2014我需要以LocalDate格式获得1/2/2014和28/2/2014。

使用threeten LocalDate类。

只要使用withDayOfMonthlengthOfMonth()

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

API旨在支持与业务需求紧密匹配的解决scheme

 import static java.time.temporal.TemporalAdjusters.*; LocalDate initial = LocalDate.of(2014, 2, 13); LocalDate start = initial.with(firstDayOfMonth()); LocalDate end = initial.with(lastDayOfMonth()); 

但是,乔恩的解决scheme也很好。

Jon Skeets的回答是对的,并且值得我的赞赏,只是为了完整性而添加了这个稍微不同的解决scheme:

 import static java.time.temporal.TemporalAdjusters.lastDayOfMonth; LocalDate initial = LocalDate.of(2014, 2, 13); LocalDate start = initial.withDayOfMonth(1); LocalDate end = initial.with(lastDayOfMonth()); 

尝试这个:

 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); 

你可以find欲望输出,但是需要关心getLastDayOfMonth方法的参数true / false

该参数表示闰年