📜  Java的.time.LocalDate类在Java中(1)

📅  最后修改于: 2023-12-03 15:16:36.790000             🧑  作者: Mango

Java中的.time.LocalDate类介绍

Java 8开始引入了java.time包,其中包含了许多关于日期和时间的新类。其中,LocalDate类就是Java中处理日期的核心类之一。LocalDate类表示没有时区信息的日期,这使它非常适合处理日历操作和日期算术运算。

LocalDate类有如下常用方法:

构造

public static LocalDate now()

获取当前日期。该方法返回的是当前日期,不包括时间和时区信息。

public static LocalDate of(int year, int month, int dayOfMonth)

创建指定年、月、日的日期。

public static LocalDate parse(CharSequence text)

将文本解析为日期。文本必须符合ISO-8601格式,例如“2018-01-01”。

获取信息

public int getYear()

获取日期的年。

public Month getMonth()

获取日期的月。

public int getMonthValue()

获取日期的月份,范围为1-12。

public int getDayOfMonth()

获取日期的日。

public DayOfWeek getDayOfWeek()

获取日期是星期几。

public int getDayOfYear()

获取日期是当年的第几天。

修改日期

public LocalDate plusDays(long daysToAdd)

将指定的天数添加到当前日期。

public LocalDate plusWeeks(long weeksToAdd)

将指定的周数添加到当前日期。

public LocalDate plusMonths(long monthsToAdd)

将指定的月数添加到当前日期。

public LocalDate plusYears(long yearsToAdd)

将指定的年数添加到当前日期。

public LocalDate minusDays(long daysToSubtract)

从当前日期减去指定的天数。

public LocalDate minusWeeks(long weeksToSubtract)

从当前日期减去指定的周数。

public LocalDate minusMonths(long monthsToSubtract)

从当前日期减去指定的月数。

public LocalDate minusYears(long yearsToSubtract)

从当前日期减去指定的年数。

判断

public boolean isBefore(ChronoLocalDate other)

判断当前日期是否在另一个日期之前。

public boolean isAfter(ChronoLocalDate other)

判断当前日期是否在另一个日期之后。

public boolean isEqual(ChronoLocalDate other)

判断当前日期是否等于另一个日期。

public boolean isLeapYear()

判断当前日期所在的年份是否为闰年。

其他

public LocalDate with(TemporalAdjuster adjuster)

使用TemporalAdjuster来进行日期调整。

public LocalDate withYear(int year)

将日期的年设置为指定的年。

public LocalDate withMonth(int month)

将日期的月份设置为指定的月份。

public LocalDate withDayOfMonth(int dayOfMonth)

将日期的日设置为指定的日。

public LocalDate withDayOfYear(int dayOfYear)

将日期的年的第几天设置为指定的天。

public long toEpochDay()

获取自1970年1月1日以来的天数。

以上是部分常用的方法,详细的方法可以查看官方文档。

示例:
// 创建一个LocalDate对象
LocalDate date = LocalDate.of(2022, Month.OCTOBER, 10);

// 获取这个日期是哪一年
int year = date.getYear(); // 2022

// 获取这个日期是星期几
DayOfWeek dayOfWeek = date.getDayOfWeek(); // MONDAY

// 判断这个日期是否是闰年
boolean leapYear = date.isLeapYear(); // false

// 将这个日期的年修改为2023
LocalDate modifiedDate = date.withYear(2023);