java:判断时间是否在指定时间段内,无关日期,附:测试代码,将所有时间转化为1天,然后比较

java:判断时间是否在指定时间段内,无关日期,附:测试代码

测试代码

@Test
    public void testDate() throws ParseException {
        String old="2023-03-14 10:11:11";
        Date start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(old);
        String old2="2023-03-15 20:11:11";
        Date end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(old2);
        String old3="2023-11-29 11:11:11";
        Date now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(old3);
        boolean effectiveTime = DateFormatUtil.isEffectiveTime(now, start, end);
        System.out.println("123");
    }

/**
     * 将所有时间转化为1天,然后比较
     * **/
    public static boolean isEffectiveTime(Date nowTime, Date startTimeT, Date endTimeT) {
        Calendar templateStart = Calendar.getInstance();
        templateStart.setTime(startTimeT);
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, templateStart.get(Calendar.HOUR_OF_DAY));  // 设置起始时间的小时
        calendar.set(Calendar.MINUTE, templateStart.get(Calendar.MINUTE));  // 设置起始时间的分钟
        calendar.set(Calendar.SECOND, templateStart.get(Calendar.SECOND));  // 设置起始时间的秒钟
        Date startTime = calendar.getTime();  // 起始时间

        Calendar templateEnd = Calendar.getInstance();
        templateEnd.setTime(endTimeT);
        calendar.set(Calendar.HOUR_OF_DAY, templateEnd.get(Calendar.HOUR_OF_DAY));  // 设置结束时间的小时
        calendar.set(Calendar.MINUTE, templateEnd.get(Calendar.MINUTE));  // 设置结束时间的分钟
        calendar.set(Calendar.SECOND, templateEnd.get(Calendar.SECOND));  // 设置结束时间的秒钟
        Date endTime = calendar.getTime();  // 结束时间


        Calendar templateNow = Calendar.getInstance();
        templateNow.setTime(nowTime);
        calendar.set(Calendar.HOUR_OF_DAY, templateNow.get(Calendar.HOUR_OF_DAY));  // 设置结束时间的小时
        calendar.set(Calendar.MINUTE, templateNow.get(Calendar.MINUTE));  // 设置结束时间的分钟
        calendar.set(Calendar.SECOND, templateNow.get(Calendar.SECOND));  // 设置结束时间的秒钟
        Date currentTime = calendar.getTime();  // 当前时间

        String startString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(startTime);
        String endString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(endTime);
        String nowString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(nowTime);
        if (currentTime.after(startTime) && currentTime.before(endTime)) {
            System.out.println("当前时间在指定时间段内");
            return true;
        } else {
            System.out.println("当前时间不在指定时间段内");
            return false;
        }
    }

你可能感兴趣的:(springboot,java,java,python,前端)