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