常用方法总结
获取当前时间
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
月份的第一天和最后一天
LocalDate now = LocalDate.now();
LocalDate begin = now.with(TemporalAdjusters.firstDayOfMonth());
LocalDate end = now.with(TemporalAdjusters.lastDayOfMonth());
下一月的第一天和下一年的第一天
LocalDate now = LocalDate.now();
LocalDate nextMonthBegin = now.with(TemporalAdjusters.firstDayOfNextMonth());
LocalDate nextYearBegin = now.with(TemporalAdjusters.firstDayOfNextYear());
获取当前年第一个周一的日期
LocalDate now = LocalDate.now();
LocalDate begin = now.with(TemporalAdjusters.firstDayOfYear());
LocalDate date = LocalDate.parse(begin.toString()).with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
指定时间的后几天日期
LocalDate now = LocalDate.now();
LocalDate date1 = now.plusDays(2);
LocalDate date2 = now.plusMonths(2);
计算两个日期相距
LocalDate now = LocalDate.now();
LocalDate of = LocalDate.of(2013, 6, 26);
long until = of.until(now, ChronoUnit.YEARS);
long until2 = of.until(now, ChronoUnit.MONTHS);
long until3 = of.until(now, ChronoUnit.DAYS);
判断年月的周期性
LocalDate nowDate = LocalDate.of(2020, 9, 27);
LocalDate birthDayTime = LocalDate.of(1998, 2, 11);
MonthDay birthday = MonthDay.of(birthDayTime.getMonth(), birthDayTime.getDayOfMonth());
MonthDay today = MonthDay.from(nowDate);
if(birthday.equals(today)){
System.out.println("今天是我的生日");
}else{
System.out.println("今天不是我的生日");
}
一周后的日期
LocalDate today = LocalDate.now();
LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS);
一年前或一年后的日期
LocalDate today = LocalDate.now();
LocalDate preYear = today.minus(1, ChronoUnit.YEARS);
LocalDate nextYear = today.plus(1, ChronoUnit.YEARS);
检查闰年
LocalDate today = LocalDate.now();
if (today.isLeapYear()) {
System.out.println("今年是闰年!");
} else {
System.out.println("今年不是闰年!");
}
附录
date转为LocalTime
Date from = Date.from(instant);
Instant instant2 = from.toInstant();
instant2.atZone(zone).toLocalTime();
将LocalDateTime转为date
ZoneId zone = ZoneId.systemDefault();
Instant instant = now.atZone(zone).toInstant();
Date from = Date.from(instant);