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