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