java工具:《判斷當(dāng)前時間是否在數(shù)據(jù)庫起止時間范圍內(nèi),是 ,返回true;否,返回false》

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)原理

  1. 獲取當(dāng)前時間:使用 new Date() 獲取當(dāng)前系統(tǒng)時間
  2. 時間轉(zhuǎn)換:將 Date 類型轉(zhuǎn)換為 Java 8 的 LocalTime 類型(只保留時間部分,忽略日期)
  3. 時間比較:使用 LocalTime 的 isBefore() 和 isAfter() 方法進(jìn)行范圍判斷
  4. 日志記錄:詳細(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;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容