java中时间区间判断和给定时间加减多长时间LocalDateTime
package java8test; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; public class Test { /** * java 判断一个时间是不是今天的时间范围内 * @param args */ public static void main(String[] args) { //减半小时 LocalDateTime time2=LocalDateTime.now().minusMinutes(30); //将日期类型转换成localdate类型 Date date1=new Date(); Instant instant1 = date1.toInstant(); ZoneId zoneId1 = ZoneId.systemDefault(); LocalDate localDate1 = instant1.atZone(zoneId1).toLocalDate(); System.out.println("localDate1==="+localDate1); //判断是否在时间区间 String time = "2022-03-23 11:20:45"; DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime localTime = LocalDateTime.parse(time, dtf); System.out.println("localTime====="+localTime); LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);//开始时间点 LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);//结束时间点 //如果小于今天的开始日期 if (localTime.isBefore(startTime)) { System.out.println("时间是过去"); } //如果大于今天的开始日期,小于今天的结束日期 if (localTime.isAfter(startTime) && localTime.isBefore(endTime)) { System.out.println("时间是今天"); } //如果大于今天的结束日期 if (localTime.isAfter(endTime)) { System.out.println("时间是未来"); } // 减10天 plusLocalDateTime(-10); // 减2天 plusLocalDateTime(2); } /** * 当前日期加或减num天,num为正表示加,为负表示减 * @param num 加或减的天数 */ public static void plusLocalDateTime(Integer num) { LocalDateTime now = LocalDateTime.now(); System.out.println("当前时间:" + now); LocalDateTime plusTime = now.plusMonths(1).plusDays(num).plusHours(1).plusMinutes(1).plusSeconds(1); System.out.println("增加1月num天1小时1分钟1秒时间后:" + plusTime); LocalDateTime minusTime = now.minusMonths(num); System.out.println("减少num个月时间后:" + minusTime); } }