判断某个时间是否在某个时间范围内

本文介绍了如何在Java中使用ChronoUnit计算两个LocalDateTime之间的天数差,并提供方法来判断一个时间点是否处于给定的时间段内,包括使用DateTimeFormatter解析时间和Calendar/SimpleDateFormat进行时间比较。
摘要由CSDN通过智能技术生成

这里可以通过工具类ChronoUnit,两个时间进行相减。

    //LocalDateTime 类型可以获得日期和时间.则是分开的,也可以作为一个使用.
    String arrivalTime = "2023-06-07 05:03:19";
    String operationTime= "2023-06-07 05:03:19";
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    LocalDateTime operationTimeDate = LocalDateTime.parse(operationTime,dateTimeFormatter);
    LocalDateTime arrivalTimeDate = LocalDateTime.parse(arrivalTime,dateTimeFormatter);
    //判断某个时间减去某个时间差,是日期相减.
    int fromaDate = (int)ChronoUnit.DAYS.between(operationTimeDate.toLocalDate(), arrivalTimeDate.toLocalDate());

这里可以直接判断一个时间,是否在这个时间的范围内。这个非常重要,很多地方可以直接使用到。

	//判断某个时间是否在某个时间范围内,如果在返回true,不在返回false.
	boolean bool = timeIsInRound("05:02:53", "00:00:00 - 07:00:00");
	 /**
     * 判断时间是否在时间段内
     */
    public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
        Calendar date = Calendar.getInstance();
        date.setTime(nowTime);

        Calendar begin = Calendar.getInstance();
        begin.setTime(beginTime);

        Calendar end = Calendar.getInstance();
        end.setTime(endTime);

        return date.after(begin) && date.before(end);
    }
    /**
     * 比较一个 HH:mm:ss 是否在一个时间段内
     * 如:14:33:00 是否在 09:30:00 和 12:00:00 内
     */
    public static boolean timeIsInRound(String str1, String start, String end) {
        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
        Date now = null;
        Date beginTime = null;
        Date endTime = null;

        try {
            now = df.parse(str1);
            beginTime = df.parse(start);
            endTime = df.parse(end);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return belongCalendar(now, beginTime, endTime);
    }

    /**
     * 14:33:00 是否在 09:30:00 - 12:00:00 内
     *
     * @param str1  14:33:00
     * @param round 09:30:00 - 12:00:00
     */
    public static boolean timeIsInRound(String str1, String round) {
        String[] roundTime = round.split("-");
        return timeIsInRound(str1, roundTime[0], roundTime[1]);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值