Java判断时间是否在当天24h范围内

本文介绍了一个用于判断指定日期是否属于当前日期24小时之内的Java工具类。该工具类通过比较给定日期与当前日期的开始和结束时间来实现这一功能,并提供了一个测试案例验证其准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        写项目的时候,遇到一个需求,需要判断查询出来的数据更新时间是否为当天24h之内的数据,当然可以使用SQL语句 between 更新时间范围来查询;但是,有些特殊情况需要通过id先把所有满足id条件的数据查询出来,然后通过Java业务逻辑来处理满足当天时间范围内的数据给分页处理,这样就涉及到了一个判断是否为当天时间的工具类。

    工具代码:

package com.sjbb.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import lombok.extern.slf4j.Slf4j;

/**
 * @Description 时间段判断
 * @author 刘鹏博
 * @version v1.0
 * @date 2018年7月31日
 */
@Slf4j
public class DateUtils {
	/**
	 * @Description 是否为当天24h内
	 * @author 刘鹏博
	 * @param inputJudgeDate 要判断是否在当天24h内的时间
	 * @return
	 * boolean
	 */
	public static boolean isToday(Date inputJudgeDate) {
		boolean flag = false;
		//获取当前系统时间
		long longDate = System.currentTimeMillis();
		Date nowDate = new Date(longDate);
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String format = dateFormat.format(nowDate);
		String subDate = format.substring(0, 10);
		//定义每天的24h时间范围
		String beginTime = subDate + " 00:00:00";
		String endTime = subDate + " 23:59:59";
		Date paseBeginTime = null;
		Date paseEndTime = null;
		try {
			paseBeginTime = dateFormat.parse(beginTime);
			paseEndTime = dateFormat.parse(endTime);
			
		} catch (ParseException e) {
			log.error(e.getMessage());
		}
		if(inputJudgeDate.after(paseBeginTime) && inputJudgeDate.before(paseEndTime)) {
			flag = true;
		}
		return flag;
	}
}

    测试代码:

package com.sjbb.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Description 判断当天时间工具测试
 * @author 刘鹏博
 * @version v1.0
 * @date 2018年8月1日
 */
public class DateUtilsTest {
	public static void main(String[] args) {
		//测试时间1
		String testTimeOne = "2018-07-31 10:25:11";
		//测试时间2
		String testTimeTwo = "2018-08-01 13:09:51";
		//时间格式化
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date psTestTimeOne = null;
		Date psTestTimeTwo = null;
		try {
			psTestTimeOne = format.parse(testTimeOne);
			psTestTimeTwo = format.parse(testTimeTwo);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		boolean timeOneIsToday = DateUtils.isToday(psTestTimeOne);
		boolean timeTwoIsToday = DateUtils.isToday(psTestTimeTwo);
		System.out.println("测试时间输出为true,则处于当天24h范围内,false反之。");
		System.out.println("测试时间一:"+timeOneIsToday);
		System.out.println("测试时间二:"+timeTwoIsToday);
	}
}

    测试结果:

测试时间输出为true,则处于当天24h范围内,false反之。
测试时间一:false
测试时间二:true

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值