boolean isAfter(ChronoLocalDateTime other):检查此日期时间是否在指定日期时间之后。
boolean isBefore(ChronoLocalDateTime other)boolean isEqual(ChronoLocalDateTime other)int compareTo(ChronoLocalDateTime other) 将此日期时间与其他日期时间进行比较。
LocalDateTime dateTime1 = LocalDateTime.of(2021,5,7,9,22,22); LocalDateTime dateTime2 = LocalDateTime.of(2021,6,7,9,22,22); LocalDateTime dateTime3 = LocalDateTime.of(2021,5,7,9,22,22); if(dateTime1.isBefore(dateTime2)){ System.out.println("dateTime1 is before dateTime2"); } if(dateTime2.isAfter(dateTime3)){ System.out.println("dateTime2 is after dateTime3"); } if(dateTime1.equals(dateTime3)){ System.out.println("dateTime1 is equal to dateTime3"); } if(dateTime1.compareTo(dateTime3) ==0){ System.out.println("dateTime1 is equal to dateTime3"); }通过 with 方法进行快捷时间调节使用 TemporalAdjusters.firstDayOfMonth 得到当前月的第一天;使用 TemporalAdjusters.firstDayOfYear() 得到当前年的第一天;使用 TemporalAdjusters.previous(DayOfWeek.SATURDAY) 得到上一个周六;使用 TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY) 得到本月最后一个周五。
System.out.println("//本月的第一天"); System.out.println(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth())); System.out.println("//今年的程序员日"); System.out.println(LocalDate.now().with(TemporalAdjusters.firstDayOfYear()).plusDays(255)); System.out.println("//今天之前的一个周六"); System.out.println(LocalDate.now().with(TemporalAdjusters.previous(DayOfWeek.SATURDAY))); System.out.println("//本月最后一个工作日"); System.out.println(LocalDate.now().with(TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY)));可以直接使用 lanbda 表达式进行自定义的时间调整 System.out.println(LocalDate.now().with(temporal -> temporal.plus(ThreadLocalRandom.current().nextInt(100), ChronoUnit.DAYS)));除了计算外,还可以判断日期是否符合某个条件。
比如,自定义函数,判断指定日期是否是家庭成员的生日:public class DateTimeTest { private static LocalDateTime localDateTime = LocalDateTime.now(); public static void main(String[] args) { System.out.println(isFamilyBirthday(localDateTime)); } public static Boolean isFamilyBirthday(LocalDateTime date) { int month = date.getMonthValue(); int day = date.getDayOfMonth(); if (month == Month.JULY.getValue() && day == 10) return Boolean.TRUE; if (month == Month.SEPTEMBER.getValue() && day == 21) return Boolean.TRUE; if (month == Month.MAY.getValue() && day == 22) return Boolean.TRUE; return Boolean.FALSE; }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)