格式化后:
当前时间:2019-10-24T00:37:44.867 格式化后:2019-10-24T00:37:44.867 格式化后:2019-10-24 格式化后:00:37:44.867 格式化后:2019-10-24 12:37:44 6. 时间比较 /** * 时间比较 */ @Test public void diffTest() { LocalDateTime now = LocalDateTime.now(); LocalDateTime yestory = now.minusDays(1); System.out.println(now + "在" + yestory + "之后吗?" + now.isAfter(yestory)); System.out.println(now + "在" + yestory + "之前吗?" + now.isBefore(yestory)); // 时间差 long day = yestory.until(now, ChronoUnit.DAYS); long month = yestory.until(now, ChronoUnit.MONTHS); long hours = yestory.until(now, ChronoUnit.HOURS); long minutes = yestory.until(now, ChronoUnit.MINUTES); System.out.println("相差月份" + month); System.out.println("相差天数" + day); System.out.println("相差小时" + hours); System.out.println("相差分钟" + minutes); // 距离JDK 14 发布还有多少天? LocalDate jdk14 = LocalDate.of(2020, 3, 17); LocalDate nowDate = LocalDate.now(); System.out.println("距离JDK 14 发布还有:" + nowDate.until(jdk14, ChronoUnit.DAYS) + "天"); }比较结果:
2019-10-24T00:39:01.589在2019-10-23T00:39:01.589之后吗?true 2019-10-24T00:39:01.589在2019-10-23T00:39:01.589之前吗?false 相差月份0 相差天数1 相差小时24 相差分钟1440 距离JDK 14 发布还有:145天 7. 时间加减 /** * 日期加减 */ @Test public void calcTest() { LocalDateTime now = LocalDateTime.now(); System.out.println("当前时间:"+now); LocalDateTime plusTime = now.plusMonths(1).plusDays(1).plusHours(1).plusMinutes(1).plusSeconds(1); System.out.println("增加1月1天1小时1分钟1秒时间后:" + plusTime); LocalDateTime minusTime = now.minusMonths(2); System.out.println("减少2个月时间后:" + minusTime); }操作结果:
当前时间:2019-10-24T00:41:08.877 增加1月1天1小时1分钟1秒时间后:2019-11-25T01:42:09.877 减少2个月时间后:2019-08-24T00:41:08.877 8. 时间扩展方法 /** * 时间方法 */ @Test public void timeFunctionTest() { LocalDateTime now = LocalDateTime.now(); System.out.println("当前时间:" + now); // 第一天 LocalDateTime firstDay = now.withDayOfMonth(1); System.out.println("本月第一天:" + firstDay); // 当天最后一秒 LocalDateTime lastSecondOfDay = now.withHour(23).withMinute(59).withSecond(59); System.out.println("当天最后一秒:" + lastSecondOfDay); // 最后一天 LocalDateTime lastDay = now.with(TemporalAdjusters.lastDayOfMonth()); System.out.println("本月最后一天:" + lastDay); // 是否闰年 System.out.println("今年是否闰年:" + Year.isLeap(now.getYear())); }输出结果:
当前时间:2019-10-24T00:43:28.296 本月第一天:2019-10-01T00:43:28.296 当天最后一秒:2019-10-24T23:59:59.296 本月最后一天:2019-10-31T00:43:28.296 今年是否闰年:falseJdk 8 新的时间类使用起来相比之前显得更加方便简单。
Jdk 8 也把时间处理成独立成一个包,并且使用不同的类名加以区分。而不是像之前相同的类名不同的包。这样的方式使用起来也更加清晰。