java工具:《判断当前时间是否在数据库起止时间范围内,是 ,返回true;否,返回false》

image.png

@[toc]

一、介绍

功能说明

这是一个判断当前时间是否在指定时间范围内的工具方法。方法接收两个 Date 类型的参数(开始时间和结束时间),判断当前的系统时间是否落在这两个时间点之间。

参数说明

  • dbBeginDate:开始时间(从数据库获取)
  • dbEndDate:结束时间(从数据库获取)

返回值

  • true:当前时间在开始时间和结束时间之间
  • false:当前时间不在指定时间范围内

实现原理

  1. 获取当前时间:使用 new Date() 获取当前系统时间
  2. 时间转换:将 Date 类型转换为 Java 8 的 LocalTime 类型(只保留时间部分,忽略日期)
  3. 时间比较:使用 LocalTime 的 isBefore() 和 isAfter() 方法进行范围判断
  4. 日志记录:详细的日志输出便于调试和监控

二、代码

/**
 * 判断当前时间是否在数据库起止时间范围内,是 ,返回true;否,返回false
 * @param dbBeginDate 开始日期
 * @param dbEndDate 结束日期
 * @return 结果
 */
public static boolean determineWhetherItMatchesTheTime(Date dbBeginDate, Date dbEndDate) {
    logger.info("-determineWhetherItMatchesTheTime-dbBeginDate:{},dbEndDate:{}", dbBeginDate, dbEndDate);
    boolean flag = false;
    // 获取当前日期和时间
    Date currentDate = new Date();
    // 将日期转换为LocalTime对象
    LocalTime localTime = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
    logger.info("当前时间:{}", localTime);
    LocalTime dbBeginLocalTime = dbBeginDate.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
    LocalTime dbEndLocalTime = dbEndDate.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
    logger.info("dbBeginLocalTime:{},dbEndLocalTime:{}", dbBeginLocalTime, dbEndLocalTime);
    if (localTime.isBefore(dbEndLocalTime) && localTime.isAfter(dbBeginLocalTime)) {
        flag = true;
    }
    return flag;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容