LocalDate基本使用
2021-12-07 本文已影响0人
喏喏2021
1. 概念
- 不带时区信息
- 只包含年月日
- 线程安全的
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
您感觉对您有些许帮助,可以帮忙点个赞哦!