目录
1.说明
指定一个String字符串类型的年月,然后得到该月份的第一天和最后一天。
String dateStr = "202207"; // 指定年月
LocalDate date = LocalDate.parse(dateStr + "01", DateTimeFormatter.BASIC_ISO_DATE);
LocalDate dateFirst = date.with(TemporalAdjusters.firstDayOfMonth()); // 指定年月的第一天
LocalDate dateEnd = date.with(TemporalAdjusters.lastDayOfMonth()); // 指定年月的最后一天
2.示例:
String billsDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, detailVo.getQueryParam().getBillsDate());
LocalDate date = LocalDate.parse(billsDate, DateTimeFormatter.ISO_LOCAL_DATE);
bmsBillsChargesDetail.setStartDate(DateUtils.toDate(date.with(TemporalAdjusters.firstDayOfMonth())));
bmsBillsChargesDetail.setEndDate(DateUtils.toDate(date.with(TemporalAdjusters.lastDayOfMonth())));
/**
* 增加 LocalDate ==> Date
*/
public static Date toDate(LocalDate temporalAccessor)
{
LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0));
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
3.总结
先转换成LocalDateTime对象,获取本月的第一天和最后一天
再转换成date对象