本月
LocalDate today = LocalDate.now();
//本月的第一天
LocalDate firstday = LocalDate.of(today.getYear(),today.getMonth(),1);
//本月的最后一天
LocalDate lastDay =today.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("本月的第一天" + firstday);
System.out.println("本月的最后一天" + lastDay);
输出:
本月的第一天2020-09-01
本月的最后一天2020-09-30
本周
LocalDate today = LocalDate.now();
System.out.println("本周第一天:"+date2Str(getStartDayOfWeek(today)));
System.out.println("本周最后一天:"+date2Str(getEndDayOfWeek(today)));
public static String date2Str(Date date) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
}
public static Date getStartDayOfWeek(TemporalAccessor date) {
TemporalField fieldIso = WeekFields.of(DayOfWeek.MONDAY, 1).dayOfWeek();
LocalDate localDate = LocalDate.from(date);
localDate = localDate.with(fieldIso, 1);
return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
}
public static Date getEndDayOfWeek(TemporalAccessor date) {
TemporalField fieldIso = WeekFields.of(DayOfWeek.MONDAY, 1).dayOfWeek();
LocalDate localDate = LocalDate.from(date);
localDate = localDate.with(fieldIso, 7);
return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
}
输出:
本周第一天:2020-09-07 00:00:00
本周最后一天:2020-09-13 00:00:00
本文详细介绍了如何使用Java进行日期和时间的操作,包括获取当前月份的第一天和最后一天,以及本周第一天和最后一天的具体实现方法。通过代码示例,读者可以了解到如何利用LocalDate和TemporalAdjusters等API来准确地获取日期信息。

416

被折叠的 条评论
为什么被折叠?



