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

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM