Java8 LocalDateTime 获取当前日周月年的起止时间

本文介绍如何在Java8中使用LocalDateTime获取当前日期、周、月和年的起始和结束时间,包括LocalDateTime和String两种格式的表示方法。

Java8 LocalDateTime 常见使用_获取当天、本周、本月、本季度、本年度起止时间

一、返回 LocalDateTime 格式的起止时间


/**
 * @Description:返回 LocalDateTime 格式的日、周、月、季度、年起止时间
 * @Author: lsiyan
 * @Date: 2020/8/21 22:47
 */
import java.time.*;
import java.time.temporal.TemporalAdjusters;

/**
 * jdk8 获取当天,本周,本月,本季度,本年起始时间工具类 LocalDateTime
 */
public class LocalDateTimeUtils {
   
   

	public static final String MinTime = "T00:00:00";
	public static final String MaxTime = "T23:59:59.999999999";


	/**
	 * @Description:当天的开始时间
	 * @Param: [today, isFirst: true 表示开始时间,false表示结束时间]
	 */
	public static LocalDateTime getStartOrEndDayOfDay(LocalDate today, Boolean isFirst){
   
   
		LocalDate resDate = LocalDate.now();
		if (today == null) {
   
   
			today = resDate;
		}
		if(isFirst){
   
   
			return LocalDateTime.of(today, LocalTime.MIN);
		}else{
   
   
			return LocalDateTime.of(today, LocalTime.MAX);
		}
	}

	/**
	 * @Description:本周的开始时间
	 * @Param: [today, isFirst: true 表示开始时间,false表示结束时间]
	 */
	public static LocalDateTime getStartOrEndDayOfWeek(LocalDate today, Boolean isFirst){
   
   
		String time = MinTime;
		LocalDate resDate = LocalDate.now();
		if (today == null) {
   
   
			today = resDate;
		}
		DayOfWeek week = today.getDayOfWeek();
		int value = week.getValue();
		if (isFirst) {
   
   
			resDate = today.minusDays(value - 1);
		} else {
   
   
			resDate = today.plusDays(7 - value);
			time = MaxTime;
		}
		LocalDateTime localDateTime = LocalDateTime.parse(resDate.toString() + time);
		return localDateTime;
	}

	/**
	 * @Description:本月的开始时间
	 * @Param: [today, isFirst: true 表示开始时间,false表示结束时间]
	 */
	public static LocalDateTime getStartOrEndDayOfMonth(LocalDate today, Boolean isFirst){
   
   
		String time = MinTime;
		LocalDate resDate = LocalDate.now()
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值