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