说明
用来处理 日期 的类,不包含 时间,默认的格式是 yyyy-MM-dd
创建对象
当前日期
LocalDate date = LocalDate.now();
System.out.println(date);
指定日期
LocalDate date=LocalDate.of(2020,8,20);
获取年月日
System.out.println(date.getYear());
System.out.println(date.getMonthValue());
System.out.println(date.getDayOfMonth());
格式化成字符串
通过 DateTimeFormatter
格式化
DateTimeFormatter
是 线程安全 的,比 SimpleDateFormat
格式化时间更好
方式一
LocalDate date=LocalDate.now();
DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
String str=date.format(df);
System.out.println(str);
方式二
LocalDate date=LocalDate.now();
DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
String str=df.format(date);
System.out.println(str);
将字符串解析成对象
DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date=LocalDate.parse("2020-04-07",df);
System.out.println(date);
日期计算
计算后,返回结果,原对象不变
加法
返回计算后的结果
// 明年
localDate.plusYears(1);
// 下个月
localDate.plusMonths(1);
// 下个星期
localDate.plusWeeks(1);
// 明天
localDate.plusDays(1);
减法
// 去年
localDate.minusYears(1);
// 上个月
localDate.minusMonths(1);
// 上个星期
localDate.minusWeeks(1);
// 昨天
localDate.minusDays(1);
案例
LocalDate date=LocalDate.now();
//返回计算后的结果
LocalDate res=date.plusMonths(1);
String s=res.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(s);
判断
// 是否相等
localDate.isEqual(localDate1);
// 是否早于
localDate.isBefore(localDate1);
// 是否晚于
localDate.isAfter(localDate1);
// 是否是闰年
localDate.isLeapYear();
时间设置
返回新对象,原对象不变
// 设置年
localDate.withYear(2020);
// 设置月份
localDate.withMonth(5);
// 设置日期
localDate.withDayOfMonth(20);
localDate.withDayOfYear(100);
检查像生日这种周期性事件
// 假设今天是 2020-05-20
LocalDate date1 = LocalDate.now();
MonthDay currentMonthDay = MonthDay.from(date1);
LocalDate date2 = LocalDate.of(1996,5,20);
MonthDay birthday = MonthDay.from(date2);
if(currentMonthDay.equals(birthday)){
System.out.println("今天是你的生日");
}
判断是否闰年
boolean leapYear = LocalDate.now().isLeapYear();
System.out.println(leapYear);
感谢:
https://blog.csdn.net/qidasheng2012/article/details/106426769