java8获取本周本月第一天和最后一天

本月

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

版权声明:本文为u012586389原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。