java8 LocalDate

说明

用来处理 日期 的类,不包含 时间,默认的格式是 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

https://www.cnblogs.com/wang-yaz/p/10757937.html


原文出处:http://malaoshi.top/show_1IX35cvGoLhj.html