package com.fastbee.common.utils.date; import cn.hutool.core.date.LocalDateTimeUtil; import java.time.Duration; import java.time.LocalDateTime; /** * 时间工具类,用于 {@link LocalDateTime} * * @author fastbee */ public class LocalDateTimeUtils { /** * 空的 LocalDateTime 对象,主要用于 DB 唯一索引的默认值 */ public static LocalDateTime EMPTY = buildTime(1970, 1, 1); public static LocalDateTime addTime(Duration duration) { return LocalDateTime.now().plus(duration); } public static boolean beforeNow(LocalDateTime date) { return date.isBefore(LocalDateTime.now()); } public static boolean afterNow(LocalDateTime date) { return date.isAfter(LocalDateTime.now()); } /** * 创建指定时间 * * @param year 年 * @param mouth 月 * @param day 日 * @return 指定时间 */ public static LocalDateTime buildTime(int year, int mouth, int day) { return LocalDateTime.of(year, mouth, day, 0, 0, 0); } public static LocalDateTime[] buildBetweenTime(int year1, int mouth1, int day1, int year2, int mouth2, int day2) { return new LocalDateTime[]{buildTime(year1, mouth1, day1), buildTime(year2, mouth2, day2)}; } /** * 判断当前时间是否在该时间范围内 * * @param startTime 开始时间 * @param endTime 结束时间 * @return 是否 */ public static boolean isBetween(LocalDateTime startTime, LocalDateTime endTime) { if (startTime == null || endTime == null) { return false; } return LocalDateTimeUtil.isIn(LocalDateTime.now(), startTime, endTime); } }