LocalDate基本使用

2021-12-07  本文已影响0人  喏喏2021

1. 概念

  1. 不带时区信息
  2. 只包含年月日
  3. 线程安全的

2. 初始化

LocalDate d = LocalDate.now(); //当前日期 2021-12-06
LocalDate d1 = LocalDate.of(2021, 6, 6); //指定年月日 2021-06-06
LocalDate d2 = LocalDate.of(2021, Month.DECEMBER, 1); //月份使用枚举 2021-12-01
LocalDate d3 = LocalDate.ofYearDay(2021, 360); //某年第多少天 2021-12-26
LocalDate d4 = LocalDate.parse("2021-12-07"); //格式化 2021-12-07,注:这里的月份和天,都必须是2位
LocalDate d5 = LocalDate.parse("2021-11-15", DateTimeFormatter.ISO_LOCAL_DATE);//标准格式 2021-11-15
LocalDate d6 = LocalDate.parse("20211015", DateTimeFormatter.ofPattern("yyyyMMdd"));//指定格式2021-10-15
LocalDate d7 = LocalDate.parse("20211015", DateTimeFormatter.BASIC_ISO_DATE);//2021-10-15

3.获取

LocalDate d = LocalDate.now(); //当前日期 2021-12-06
String d1 = d.getYear() + "-" + d.getMonthValue() + "-" + d.getDayOfMonth(); //年月日 2021-12-6
DayOfWeek dayOfWeek = d.getDayOfWeek();//星期几 1
int dayOfYear = d.getDayOfYear(); //一年第多少天 340
int monthOfYear = d.get(ChronoField.MONTH_OF_YEAR);//当年第几个月 12
int lengthOfMonth = d.lengthOfMonth(); //这个月有多少天 31
int lengthOfYear = d.lengthOfYear(); //这年有多少天 365

4.变更

LocalDate d = LocalDate.now(); //当前日期 2021-12-07
LocalDate d1 = d.withYear(2020); //变量年份 2020-12-07
LocalDate d2 = d.withMonth(10); //变更月份 2021-10-07
LocalDate d3 = d.withDayOfMonth(15); //变量日期 2021-12-15
LocalDate d4 = d.withDayOfYear(12); //一年第多少天 2021-01-12
LocalDate d5 = d.with(ChronoField.DAY_OF_WEEK,5); //一周第几天 2021-12-10
LocalDate d6 = d.with(TemporalAdjusters.lastDayOfMonth()); //月最后一天 2021-12-31

5. 转换

LocalDate d = LocalDate.now(); //当前日期 2021-12-07
LocalDate d1 = d.plusDays(2); //添加2天 2021-12-09
LocalDate d2 = d.minusDays(1); //减1天 2021-12-06
LocalDate d3 = d.plusMonths(1); //加1个月 2022-01-07
LocalDate d4 = d.plusWeeks(2); //加2个星期 2021-12-21
LocalDate d5 = d.plusYears(1); //加1年 2022-12-07
LocalDate d6 = d.plus(5L, ChronoUnit.DAYS); //加5天 2021-12-12

6. 比较

LocalDate d = LocalDate.now(); //当前日期 2021-12-07
LocalDate d1 = d.plusDays(5); //加5天
int r1 = d.compareTo(d1); //负数,晚几天 -5
boolean isEqual = d.isEqual(d1); //是否相等 false
boolean isBefore = d.isBefore(d1); //是否在前 true
boolean isAfter = d.isAfter(d1); //是否在后 false

7. 格式化输出

LocalDate d = LocalDate.now(); //当前日期 2021-12-07
String d1 = d.format(DateTimeFormatter.BASIC_ISO_DATE); //格式化输出 20211207
String d2 = d.format(DateTimeFormatter.ofPattern("yyyy年MM月dd号"));//指定格式 2021年12月07号

8. 其它

LocalDate d = LocalDate.now(); //当前日期 2021-12-07
boolean isLeapYear = d.isLeapYear(); //是否闰年 false

您感觉对您有些许帮助,可以帮忙点个赞哦!

上一篇 下一篇

猜你喜欢

热点阅读