
image.png
@[toc]
一、介紹
功能說明
這是一個判斷當(dāng)前時間是否在指定時間范圍內(nèi)的工具方法。方法接收兩個 Date 類型的參數(shù)(開始時間和結(jié)束時間),判斷當(dāng)前的系統(tǒng)時間是否落在這兩個時間點之間。
參數(shù)說明
- dbBeginDate:開始時間(從數(shù)據(jù)庫獲?。?/li>
- dbEndDate:結(jié)束時間(從數(shù)據(jù)庫獲?。?/li>
返回值
- true:當(dāng)前時間在開始時間和結(jié)束時間之間
- false:當(dāng)前時間不在指定時間范圍內(nèi)
實現(xiàn)原理
- 獲取當(dāng)前時間:使用 new Date() 獲取當(dāng)前系統(tǒng)時間
- 時間轉(zhuǎn)換:將 Date 類型轉(zhuǎn)換為 Java 8 的 LocalTime 類型(只保留時間部分,忽略日期)
- 時間比較:使用 LocalTime 的 isBefore() 和 isAfter() 方法進(jìn)行范圍判斷
- 日志記錄:詳細(xì)的日志輸出便于調(diào)試和監(jiān)控
二、代碼
/**
* 判斷當(dāng)前時間是否在數(shù)據(jù)庫起止時間范圍內(nèi),是 ,返回true;否,返回false
* @param dbBeginDate 開始日期
* @param dbEndDate 結(jié)束日期
* @return 結(jié)果
*/
public static boolean determineWhetherItMatchesTheTime(Date dbBeginDate, Date dbEndDate) {
logger.info("-determineWhetherItMatchesTheTime-dbBeginDate:{},dbEndDate:{}", dbBeginDate, dbEndDate);
boolean flag = false;
// 獲取當(dāng)前日期和時間
Date currentDate = new Date();
// 將日期轉(zhuǎn)換為LocalTime對象
LocalTime localTime = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
logger.info("當(dāng)前時間:{}", 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;
}