使用threeten,LocalDate获取月份的第一天和最后一天
我有一个LocalDate需要得到本月的第一天和最后一天。 我怎么做?
例如。 13/2/2014我需要以LocalDate格式获得1/2/2014和28/2/2014。
使用threeten LocalDate类。
只要使用withDayOfMonth
和lengthOfMonth()
:
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
该参数表示闰年