Java判斷一個時間是否在當(dāng)前時間區(qū)間代碼示例
前言:
我現(xiàn)有個定時任務(wù) 每天上午10下午4點查一次表有沒有錄入新數(shù)據(jù)進來 有時候錄半天就沒錄入了 所以還得知道他是不是新數(shù)據(jù) 得知道這條數(shù)據(jù)的時間在沒在當(dāng)前時間左右范圍內(nèi) 在的話就還在正常錄入 。
1.所需條件
你得確保有三時間作為條件 區(qū)間數(shù)據(jù) (就是我們最新查到的數(shù)據(jù)的最新時間), 當(dāng)前時間的前一個小時時間, 當(dāng)前時間。(這個區(qū)間數(shù)據(jù)時間是我來測試的 你們得查最新數(shù)據(jù)的時間)
SQL如下:
含義如下:
SELECT date_sub(now(), interval 1 huor); //就是當(dāng)前時間的前的一小時間 //(date:時間 sub 減去 interval:間隔 hour :小時) //這里我設(shè)置的一個小時 你們也可以設(shè)置長一點都可以 SELECT SYSDATE(); //查詢系統(tǒng)當(dāng)前時間 (就是你電腦時間)
2.將這三個進行轉(zhuǎn)換類型
3.做條件判斷
- (當(dāng)前時間的前一個小時作為) 開始時間
- (我們的新數(shù)據(jù)時間作為) 區(qū)間時間
- (當(dāng)前時間作為) 結(jié)束時間
將這個三個都setTime一下之后,
進行判斷 意思就是你查的這個區(qū)間數(shù)據(jù) 有沒有在開始時間 和 結(jié)束時間 之間 是的話就會進 在區(qū)間里!!!
可以看到最新數(shù)據(jù)時間在 開始時間 和 結(jié)束時間 之間 所以他是最新錄入進來的數(shù)據(jù)。
4.整體代碼
@Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.addTriggerTask( //1.添加任務(wù)內(nèi)容(Runnable) () -> System.out.println("執(zhí)行動態(tài)定時任務(wù): " + LocalDateTime.now().toLocalTime()), //2.設(shè)置執(zhí)行周期(Trigger) triggerContext -> { //2.1 從數(shù)據(jù)庫獲取執(zhí)行周期 String cron = aitravelCheckInfoService.selectCron(); System.out.println(cron); String cs = "2023-03-14 01:30:00";//區(qū)間數(shù)據(jù)時間 System.out.println(cs); String kaishi = aitravelCheckInfoService.kaishi();//當(dāng)前時間的前一個小時 System.out.println(kaishi); String dangqian = aitravelCheckInfoService.dangqian();//當(dāng)前時間 System.out.println(dangqian); String zong = aitravelCheckInfoService.zong(); System.out.println(zong); int i = Integer.parseInt(zong); if (i==0){ HttpServletResponse response = null; this.sendCaptcha(response, "19176928269"); }else{ //String轉(zhuǎn)Date try { SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date wcha =ft.parse(cs);//區(qū)間數(shù)據(jù)時間(String 轉(zhuǎn) Date) System.out.println(wcha); Date kaishi1 =ft.parse(kaishi);//當(dāng)前時間往前推一個小時(String 轉(zhuǎn) Date) System.out.println(kaishi1); Date dangqian1 =ft.parse(dangqian);//當(dāng)前時間(String 轉(zhuǎn) Date) System.out.println(dangqian1); Calendar dateC = Calendar.getInstance(); dateC.setTime(wcha);//區(qū)間數(shù)據(jù)時間 System.out.println(dateC); Calendar begin = Calendar.getInstance(); begin.setTime(kaishi1);//開始時間 Calendar end = Calendar.getInstance(); end.setTime(dangqian1);//結(jié)束時間 if (dateC.after(begin) && dateC.before(end)) { System.out.println("在區(qū)間里"); }else{ System.out.println("不在區(qū)間里"); HttpServletResponse response = null; this.sendCaptcha(response, "19176928269"); } } catch (ParseException e) { e.printStackTrace(); } } //2.3 返回執(zhí)行周期(Date) return new CronTrigger(cron).nextExecutionTime(triggerContext); } ); }
最后希望能幫助到你。
總結(jié)
到此這篇關(guān)于Java判斷一個時間是否在當(dāng)前時間區(qū)間的文章就介紹到這了,更多相關(guān)Java判斷時間在時間區(qū)間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Spring Boot不同的環(huán)境使用不同的配置方法
下面小編就為大家分享一篇基于Spring Boot不同的環(huán)境使用不同的配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01詳解Java如何在業(yè)務(wù)代碼中優(yōu)雅的使用策略模式
這篇文章主要為大家介紹了Java如何在業(yè)務(wù)代碼中優(yōu)雅的使用策略模式,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的可以了解下2023-08-08SpringBoot預(yù)防XSS攻擊的實現(xiàn)
XSS攻擊是一種在web應(yīng)用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面,本文主要介紹了SpringBoot預(yù)防XSS攻擊的實現(xiàn),感興趣的可以了解一下2023-08-08java.lang.ExceptionInInitializerError異常的解決方法
這篇文章主要為大家詳細(xì)介紹了java.lang.ExceptionInInitializerError異常的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10java并發(fā)編程專題(一)----線程基礎(chǔ)知識
這篇文章主要介紹了java并發(fā)編程線程的基礎(chǔ)知識,文中講解非常詳細(xì),幫助大家更好的學(xué)習(xí)JAVA并發(fā)編程,感興趣想學(xué)習(xí)JAVA的可以了解下2020-06-06SpringBoot如何注冊Servlet、Filter、Listener的幾種方式
在Servlet 3.0之前都是使用web.xml文件進行配置,這篇文章主要介紹了SpringBoot如何注冊Servlet、Filter、Listener的幾種方式,在Servlet 3.0之前都是使用web.xml文件進行配置,2018-10-10