LocalDate、LocalTime、LocalDateTime的计算与判断(API)

173 阅读1分钟

LocalTime nowTime1 = LocalTime.now();
System.out.println(nowTime1);//当前时间
System.out.println(nowTime1.minusHours(1));//一小时前
System.out.println(nowTime1.minusMinutes(1));//一分钟前
System.out.println(nowTime1.minusSeconds(1));//一秒钟前
System.out.println(nowTime1.minusNanos(1));//一纳秒前

System.out.println(nowTime1.plusHours(1));//一小时后
System.out.println(nowTime1.plusMinutes(1));//一分钟后
System.out.println(nowTime1.plusSeconds(1));//一秒钟后
System.out.println(nowTime1.plusNanos(1));//一纳秒后

LocalDate myDay = LocalDate.of(2018,9,5);//获取指定的日期
LocalDate toDay = LocalDate.now();//获取当前日期
System.out.println("今天是"+myDay+"吗 "+toDay.equals(myDay));//toDay.equals(myDay)日期与日期比较相同返回 true 反之 false
System.out.println(myDay+"在"+toDay+"之前吗"+myDay.isAfter(toDay));//isAfter在时间之前
System.out.println(myDay+"在"+toDay+"之后吗"+myDay.isBefore(toDay));//isBefore在时间之后

LocalDate birthday = LocalDate.of(2005,11,28);//获取指定的日期
LocalDate nowDate1 = LocalDate.now();//获取当前日期
MonthDay monthDay = MonthDay.of(birthday.getMonthValue(),birthday.getDayOfMonth()); MonthDay.of(birthday.getMonthValue(),birthday.getDayOfMonth());//获取对象的月和日
MonthDay nowDay = MonthDay.from(nowDate1);//MonthDay.from(nowDate1);获取当前时间的月和日
System.out.println("今天是你的生日吗" + nowDay.equals(monthDay));
Instant instant = Instant.now();//获取时间戳
System.out.println(instant);
System.out.println(instant.atZone(ZoneId.systemDefault()));//转换成系统此刻的时间戳
Date date = Date.from(instant);
System.out.println(date);//转换成Date对象
Instant i1 = date.toInstant();//Date转成时间戳
System.out.println(i1);



//这个计算时间比较方便
 LocalDateTime l = LocalDateTime.now();//获取当前时间
 DateTimeFormatter d = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss EEE a");//时间格式化器
 System.out.println(d.format(l));//正向格式化
 System.out.println(l.format(d));//反向格式化

 DateTimeFormatter d1 = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss");
 LocalDateTime l1 = LocalDateTime.parse("2005-11-28 00:00:00",d1);
 System.out.println(l1);
 System.out.println(l1.getDayOfYear());

 LocalDate loc = LocalDate.now();
 System.out.println(loc);
 LocalDate loc1 = LocalDate.of(2005,11,28);
 System.out.println(loc1);
 Period period = Period.between(loc1,loc);//第二个对象减第一个对象  Period 计算两个日期的间隔 仅限 年 月 日
 System.out.println(period.getYears());//获取年的间隔
 System.out.println(period.getMonths());//获取月的间隔
 System.out.println(period.getDays());//获取天的间隔


 LocalDateTime lld = LocalDateTime.now();
 System.out.println(lld);
LocalDateTime birthDay = LocalDateTime.of(2005,11,28,00,00);
 System.out.println(birthDay);
 Duration duration = Duration.between(birthDay,lld);//第二个对象减第一个对象 Duration 计算两个时间的间隔 仅限 日 时 分 秒 毫秒 纳秒
 System.out.println(duration.toDays());//计算天的间隔
 System.out.println(duration.toHours());//计算小时的间隔
 System.out.println(duration.toMinutes());//计算分的间隔
 System.out.println(duration.toSeconds());//计算秒的间隔
 System.out.println(duration.toMillis());//计算毫秒的间隔
 System.out.println(duration.toNanos());//计算纳秒的间隔