Java日期类之LocalDate_当前日期

1、LocalDate now() 从默认时区的系统时钟获取当前日期。

LocalDate a = LocalDate.now();
System.out.println(a); // 2024-02-01

Java日期类之LocalDate_字段_02

2、LocalDate now(ZoneId zone) 从默认时区的系统时钟获取当前日期

LocalDate a = LocalDate.now(ZoneId.systemDefault());//系统默认
System.out.println(a); // 2024-02-01

Java日期类之LocalDate_System_03

3、 LocalDate now(Clock clock) 从指定的时钟获取当前日期

LocalDate a = LocalDate.now(Clock.systemDefaultZone());//系统默认
System.out.println(a); // 2024-02-01

Java日期类之LocalDate_System_04

4、LocalDate of(int year, int month, int dayOfMonth) 从年、月和日获取实例 LocalDate

year – 代表年份,从MIN_YEAR年到MAX_YEAR年

month – 代表的月份,从1月1日(1月)到12日(12月)

dayOfMonth – 表示从 1 到 31 的月份中的某天

LocalDate a = LocalDate.of(2021,7,20);
System.out.println(a);

Java日期类之LocalDate_当前日期_05

5、LocalDate ofYearDay(int year, int dayOfYear) 从一年和一年中的某天获取实例 LocalDate year – 代表年份,从MIN_YEAR年到MAX_YEAR年

dayOfYear – 代表一年中的一天,从 1 到 366

注意:如果任何字段的值超出范围,或者如果一年中的某一天对年份无效

LocalDate a = LocalDate.ofYearDay(2021 ,201);
System.out.println(a);

Java日期类之LocalDate_System_06

6、LocalDate parse(CharSequence text) 从文本字符串(如 2007-12-03)中获取 的LocalDate实例

LocalDate a = LocalDate.parse("2021-07-20");
System.out.println(a); // 2023-06-06

Java日期类之LocalDate_System_06

7、boolean isSupported(TemporalUnit unit) 检查是否支持指定的单位。 这将检查是否可以在此日期中添加或减去指定的单位

LocalDate a = LocalDate.of(2023,6,6);
boolean supported = a.isSupported(ChronoUnit.DAYS);
System.out.println(supported); // true

Java日期类之LocalDate_字段_08

8、int getYear() 获取年份字段

LocalDate a = LocalDate.of(2021,7,20);
int year = a.getYear();
System.out.println(year);

Java日期类之LocalDate_当前日期_09

9、int getMonthValue() 获取从 1 到 12 的月份字段

LocalDate a = LocalDate.of(2021,7,20);
int month = a.getMonthValue();
System.out.println(month);

Java日期类之LocalDate_System_10

10、int getDayOfMonth() 获取月份中的某天字段

LocalDate a = LocalDate.of(2021,7,20);
int day = a.getDayOfMonth();
System.out.println(day);

Java日期类之LocalDate_System_11

11、int getDayOfYear() 获取一年中的某天字段,

返回:一年中的某一天,从 1 到 365,或闰年为 366,也就是当年当月当日的天数

LocalDate now = LocalDate.of(2023,6,5);
int localDate = now.getDayOfYear();
System.out.println(localDate); // 156

Java日期类之LocalDate_System_12

12、DayOfWeek getDayOfWeek() 获取星期字段,这是一个枚举 DayOfWeek

LocalDate a = LocalDate.of(2021,7,20);
DayOfWeek week = a.getDayOfWeek();
System.out.println(week);

Java日期类之LocalDate_System_13

13、boolean isLeapYear() 检查年份是否为闰年

LocalDate a = LocalDate.of(2021,7,20);
Boolean localDate = a.isLeapYear();
System.out.println(localDate);

Java日期类之LocalDate_当前日期_14

14、int lengthOfMonth() 返回月份有多少天

LocalDate a = LocalDate.of(2021,7,20);
int month =  a.lengthOfMonth();
System.out.println(month);

Java日期类之LocalDate_当前日期_15

15、int lengthOfYear() 返回年份有多少天

LocalDate a = LocalDate.of(2021,7,20);
int year =  a.lengthOfYear();
System.out.println(year);

Java日期类之LocalDate_System_16

16、LocalDate with(TemporalAdjuster adjuster) 返回此日期的调整副本

例如,此代码返回 7 月最后一天的日期

LocalDate a = LocalDate.of(2021,7,20);
LocalDate day =  a.with(lastDayOfMonth());
System.out.println(day);

Java日期类之LocalDate_字段_17

17、LocalDate withYear(int year) 返回更改 LocalDate 年份的副本。 如果月份中的某天对年份无效,它将更改为该月的最后一个有效日期。

LocalDate a = LocalDate.of(2021,7,20);
LocalDate day =  a.withYear(2024);
System.out.println(day);

Java日期类之LocalDate_字段_18

18、LocalDate withMonth(int month) 返回更改 LocalDate 月份的副本。

如果月份中的某天对年份无效,它将更改为该月的最后一个有效日期。

参数: month – 结果中设置的月份,从 1 日(1 月)到 12 日(12 月)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate day = a.withMonth(5);
System.out.println(day);

Java日期类之LocalDate_字段_19

19、LocalDate withDayOfMonth(int dayOfMonth) 返回更改 LocalDate 月份中的某天的副本。 如果生成的日期无效,则会引发异常

参数: dayOfMonth – 结果中设置的月份日期,从 1 到 28-31

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.withDayOfMonth(5);
System.out.println(localDate);

Java日期类之LocalDate_System_20

20、LocalDate withDayOfYear(int dayOfYear) 返回更改 LocalDate 了一年中的某一天的副本。 如果生成的日期无效,则会引发异常

参数: dayOfYear – 结果中设置的日期,从 1 到 365-366

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.withDayOfYear(30);
System.out.println(localDate);

Java日期类之LocalDate_当前日期_21

21、LocalDate plusYears(long yearsToAdd) 返回添加 LocalDate 指定年数

参数: yearsToAdd – 要添加的年份,可能是负数(如果是正数则增加年份,是负数则减年份)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.plusYears(3);
System.out.println(localDate); 

Java日期类之LocalDate_System_22

22、LocalDate plusMonths(long monthsToAdd) 返回添加 LocalDate 指定月数

参数: monthsToAdd – 要添加的月份,可能是负数(如果是正数则增加月数,是负数则减月数)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.plusMonths(-2);
System.out.println(localDate);

Java日期类之LocalDate_当前日期_23

23、LocalDate plusWeeks(long weeksToAdd) 返回添加了 LocalDate 指定周数,可能是负数(如果是正数则增加周数,是负数则减周数)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.plusWeeks(3);
System.out.println(localDate);

Java日期类之LocalDate_当前日期_24

24、LocalDate plusDays(long daysToAdd) 返回添加 LocalDate 指定天数

参数: daysToAdd – 添加的天数,可能是负数(如果是正数则增加天数,是负数则减天数)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.plusDays(10);
System.out.println(localDate);

Java日期类之LocalDate_当前日期_25

25、LocalDate minusYears(long yearsToSubtract) 返回此 LocalDate 副本,并减去指定的年数

参数: yearsToSubtract –减去的年份,可能是负数(如果是正数则减去年份,负数则增加年份)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.minusYears(2);
System.out.println(localDate);

Java日期类之LocalDate_字段_26

26、LocalDate minusMonths(long monthsToSubtract) 返回此 LocalDate 副本,并减去指定的月数

参数: monthsToSubtract–减去的月份,可能是负数(如果是正数则减去月份,负数则增加月份)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.minusMonths(2);
System.out.println(localDate);

Java日期类之LocalDate_System_27

27、LocalDate minusWeeks(long weeksToSubtract) 返回此 LocalDate 副本,并减去指定的周数

参数: weeksToSubtract–减去的周数,可能是负数(如果是正数则减去周数,负数则增加周数)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.minusWeeks(1);
System.out.println(localDate);

Java日期类之LocalDate_字段_28

28、LocalDate minusDays(long daysToSubtract) 返回此 LocalDate 副本,并减去指定的天数

参数: daysToSubtract–减去的天数,可能是负数(如果是正数则减去天数,负数则增加天数)

LocalDate a = LocalDate.of(2021,7,20);
LocalDate localDate = a.minusDays(-2);
System.out.println(localDate);

Java日期类之LocalDate_字段_29

29、long until(Temporal endExclusive, TemporalUnit unit) 根据指定单位计算到另一个日期的时间量

例如,2023-2-28 和 2024-2-28 之间的月份

除了月份:支持YEARS、DAYS、WEEKS、DECADES、CENTURIES、MILLENNIA、ERAS

//开始日期到结束日期相差的月份
LocalDate a = LocalDate.of(2021,7,20);
LocalDate b = LocalDate.of(2024,2,1);
// 方式一
Long localDate = a.until(b, ChronoUnit.MONTHS);
// 方式二
long between = ChronoUnit.MONTHS.between(a, b);
System.out.println(localDate);
System.out.println(between);

Java日期类之LocalDate_字段_30

30、String format(DateTimeFormatter formatter) 使用指定的格式化程序设置此日期的格式。 此日期将传递给格式化程序以生成字符串

LocalDate a = LocalDate.of(2021,7,20);
String localDate = a.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
System.out.println(localDate);

Java日期类之LocalDate_当前日期_31

31、LocalDateTime atTime(LocalTime time) 将此日期与时间组合以创建 LocalDateTime. 这将返回 LocalDateTime 从此日期在指定时间形成的。日期和时间的所有可能组合均有效

LocalDate a = LocalDate.of(2021,7,20);
LocalDateTime localDate = a.atTime(LocalTime.of(15,5,6));
System.out.println(localDate);

Java日期类之LocalDate_字段_32

32、LocalDateTime atTime(int hour, int minute, int second) 将此日期与时间组合以创建 LocalDateTime. 这将返回 LocalDateTime 从此日期开始在指定的小时、分钟和秒处形成的。纳秒字段将设置为零。各个时间字段必须在其有效范围内。日期和时间的所有可能组合均有效。

参数: hour – 要使用的小时,从 0 到 23 minute – 使用的小时分钟数,从 0 到 59 second – 表示的分钟秒,从 0 到 59

LocalDate a = LocalDate.of(2021,7,20);
LocalDateTime localDate = a.atTime(15,5,6);
System.out.println(localDate);

Java日期类之LocalDate_当前日期_33

33、int compareTo(ChronoLocalDate other) 将此日期与另一个日期进行比较。

返回: 比较器值,如果较小则为负值,如果较大则为正值

LocalDate a = LocalDate.of(2021,7,20);
LocalDate b = LocalDate.of(2024,2,1);
int localDate = a.compareTo(b);
System.out.println(localDate);

Java日期类之LocalDate_System_34

34、boolean isAfter(ChronoLocalDate other) 检查此日期是否晚于指定日期

返回: 如果此日期晚于指定日期,则为 true

LocalDate a = LocalDate.of(2021,7,20);
LocalDate b = LocalDate.of(2024, 2, 1);
boolean after = a.isAfter(b);
boolean after1 = a.isAfter(a);
boolean after2 = b.isAfter(a);
System.out.println(after); 	
System.out.println(after1); 
System.out.println(after2);

Java日期类之LocalDate_当前日期_35

35、boolean isBefore(ChronoLocalDate other) 检查此日期是否早于指定日期

返回: 如果此日期早于指定日期,则为 true

LocalDate a = LocalDate.of(2021,7,20);
LocalDate b = LocalDate.of(2024, 2, 1);
boolean before = a.isBefore(b);
boolean before1 = a.isBefore(a);
boolean before2 = b.isBefore(a);
System.out.println(before);
System.out.println(before1);
System.out.println(before2);

Java日期类之LocalDate_当前日期_36

36、boolean isEqual(ChronoLocalDate other) 检查此日期是否等于指定日期

返回: 如果此日期等于指定日期,则为 true

LocalDate a = LocalDate.of(2021,7,20);
LocalDate b = LocalDate.of(2024, 2, 1);
boolean equal = a.isEqual(b);
boolean equal1 = a.isEqual(a);
boolean equal12 = b.isEqual(a);
System.out.println(equal);
System.out.println(equal1);
System.out.println(equal12);

Java日期类之LocalDate_当前日期_37

37、boolean equals(Object obj) 检查此日期是否等于另一个日期。 将此与 LocalDate 另一个进行比较,确保日期相同

返回: 如果此日期等于其他日期,则为 true,仅比较类型的 LocalDate 对象,其他类型返回 false

LocalDate a = LocalDate.of(2021,7,20);
LocalDate b = LocalDate.of(2024, 2, 1);
boolean equal = a.equals(b);
boolean equal1 = a.equals(a);
boolean equal12 = b.equals(a);
System.out.println(equal);
System.out.println(equal1);
System.out.println(equal12);

Java日期类之LocalDate_System_38

38、String toString() 将此日期输出为 String,例如 2024-02-01。 输出将采用 ISO-8601 格式 uuuu-MM-dd

LocalDate a = LocalDate.of(2024, 2, 1);
String equal = a.toString();
System.out.println(equal); 

39、int hashCode() 此日期的哈希代码。 返回: 合适的哈希码

LocalDate a = LocalDate.of(2024, 2, 1);
int equal = a.hashCode();
System.out.println(equal);