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);
    }

}

  

posted @ 2022-03-23 13:42  红尘沙漏  阅读(1027)  评论(0编辑  收藏  举报