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

@[toc]
一、介绍
功能说明
这是一个判断当前时间是否在指定时间范围内的工具方法。方法接收两个 Date 类型的参数(开始时间和结束时间),判断当前的系统时间是否落在这两个时间点之间。
参数说明
- dbBeginDate:开始时间(从数据库获取)
- dbEndDate:结束时间(从数据库获取)
返回值
- true:当前时间在开始时间和结束时间之间
- false:当前时间不在指定时间范围内
实现原理
- 获取当前时间:使用 new Date() 获取当前系统时间
- 时间转换:将 Date 类型转换为 Java 8 的 LocalTime 类型(只保留时间部分,忽略日期)
- 时间比较:使用 LocalTime 的 isBefore() 和 isAfter() 方法进行范围判断
- 日志记录:详细的日志输出便于调试和监控
二、代码
/**
* 判断当前时间是否在数据库起止时间范围内,是 ,返回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;
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)