java判断当前时间是否在对应时间段内

java判断当前时间是否在对应时间段内

public static boolean isBetween(LocalDateTime beginTime, LocalDateTime endTime) {
    //获取当前时间
    LocalDateTime now = LocalDateTime.now();
    boolean flag = false;
    if (now.isAfter(beginTime) && now.isBefore(endTime)) {
        flag = true;
    }
    return flag;
}
JAVA8 LocalDate和LocalDateTime使用 //获取当前日期 LocalDate localDate = LocalDate.now(); //输出 2022-08-24
//主动构造
LocalDate localDate1 = LocalDate.of(2022, 08,24);    //输出 2022-08-24
//Date转LocalDate
Date date = new Date();
LocalDate dateToLocalDate = LocalDate.ofInstant(date.toInstant(), 	ZoneId.systemDefault());    //输出 2022-08-24	
LocalDate localDate1 = LocalDate.of(2022, 08,01);
 LocalDate localDate2 = LocalDate.of(2022, 08,02);
Period period = Period.between(localDate1, localDate2);
//这里请注意,如果日期小的在前面,下面的方法可能为负,  即用  第二个参数 - 第一个参数

System.out.println(period.getDays());        //1
System.out.println(period.getMonths());      //0
System.out.println(period.getYears());       //0

//为什么获取的日期差是0? LocalDate.toEpochDay(), 转换成纪元日期那?

LocalDate localDate1 = LocalDate.of(2022, 07,01); LocalDate localDate2 = LocalDate.of(2022, 08,01);
long minus = localDate2.toEpochDay() - localDate1.toEpochDay();
System.out.println(minus);          //31
LocalDateTime获取到时分秒的方法
//当前日期时间
 LocalDateTime localDateTime = LocalDateTime.now();    2022-08-24
System.out.println("localDateTime:"+localDateTime); 2022-08-24 T15:55:44.307730
LocalDateTime dt = LocalDateTime.of(2022, 8, 24, 10, 50, 0);
LocalDateTime localDateTime1 = LocalDateTime.ofInstant(date.toInstant(),ZoneId.systemDefault());
计算时间差值:Duration
Duration duration = Duration.between(dt, localDateTime1);
System.out.println("间隔天数:"+duration.toDays());     
System.out.println("间隔小时数:"+duration.toHours());   
System.out.println("间隔分钟数:"+duration.toMinutes());  
 System.out.println("间隔秒数:"+duration.toSeconds());
LocalDateTime localDateTime1 = LocalDateTime.of(2022,8,17,23,0,0);
LocalDateTime localDateTime2 = LocalDateTime.of(2022, 8, 18, 10, 50, 0);
//17号和18号差一天的
Duration duration = Duration.between(localDateTime1, localDateTime2);
System.out.println("间隔天数:"+duration.toDays());      //0
System.out.println("间隔小时数:"+duration.toHours());   //11
System.out.println("间隔分钟数:"+duration.toMinutes()); //710
System.out.println("间隔秒数:"+duration.toSeconds());

这里Duration是绝对时间差值,是两个时间点相差的时间,2020-03-17 23:00:00 到 2020-03-18 10:50:00 相差11个小时,所以不够一天。 这个一定要注意区分。用LocalDate.toEpochDay相减,同一天的时间差值 用Duration

经验分享 程序员 微信小程序 职场和发展