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

本文详细介绍了如何使用Java进行日期和时间的操作,包括获取当前月份的第一天和最后一天,以及本周第一天和最后一天的具体实现方法。通过代码示例,读者可以了解到如何利用LocalDate和TemporalAdjusters等API来准确地获取日期信息。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

本月

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

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值