Java判断一个时间是否在当前时间区间代码示例.docx
第
Java判断一个时间是否在当前时间区间代码示例
目录前言:1.所需条件2.将这三个进行转换类型3.做条件判断4.整体代码总结
前言:
我现有个定时任务每天上午10下午4点查一次表有没有录入新数据进来有时候录半天就没录入了所以还得知道他是不是新数据得知道这条数据的时间在没在当前时间左右范围内在的话就还在正常录入。
1.所需条件
你得确保有三时间作为条件区间数据(就是我们最新查到的数据的最新时间),当前时间的前一个小时时间,当前时间。(这个区间数据时间是我来测试的你们得查最新数据的时间)
SQL如下:
含义如下:
SELECTdate_sub(now(),interval1huor);//就是当前时间的前的一小时间
//(date:时间sub减去interval:间隔hour:小时)
//这里我设置的一个小时你们也可以设置长一点都可以
SELECTSYSDATE();//查询系统当前时间(就是你电脑时间)
2.将这三个进行转换类型
3.做条件判断
(当前时间的前一个小时作为)开始时间(我们的新数据时间作为)区间时间(当前时间作为)结束时间
将这个三个都setTime一下之后,
进行判断意思就是你查的这个区间数据有没有在开始时间和结束时间之间是的话就会进在区间里!!!
可以看到最新数据时间在开始时间和结束时间之间所以他是最新录入进来的数据。
4.整体代码
@Override
publicvoidconfigureTasks(ScheduledTaskRegistrartaskRegistrar){
taskRegistrar.addTriggerTask(
//1.添加任务内容(Runnable)
()-System.out.println(执行动态定时任务:+LocalDateTime.now().toLocalTime()),
//2.设置执行周期(Trigger)
triggerContext-{
//2.1从数据库获取执行周期
Stringcron=aitravelCheckInfoService.selectCron();
System.out.println(cron);
Stringcs=2025-03-1401:30:00;//区间数据时间
System.out.println(cs);
Stringkaishi=aitravelCheckInfoService.kaishi();//当前时间的前一个小时
System.out.println(kaishi);
Stringdangqian=aitravelCheckInfoService.dangqian();//当前时间
System.out.println(dangqian);
Stringzong=aitravelCheckInfoService.zong();
System.out.println(zong);
inti=Integer.parseInt(zong);
if(i==0){
HttpServletResponseresponse=null;
this.sendCaptcha(response,;
}else{
//String转Date
try{
SimpleDateFormatft=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);
Datewcha=ft.parse(cs);//区间数据时间(String转Date)
System.out.println(wcha);
Datekaishi1=ft.parse(kaishi);//当前时间往前推一个小时(String转Date)
System.out.println(kaishi1);
Datedangqian1=ft.parse(dangqian);//当前时间(String转Date)
System.out.println(dangqian1);
CalendardateC=Calendar.getInstance();
dateC.setTime(wcha);//区间数据时间
Sy