Java LocalDate

时间:2020-01-09 10:35:56  来源:igfitidea点击:

Java 8日期时间API中的LocalDate类表示本地日期,它是没有时区信息的日期。当地日期可以是出生日期或者公休日等,它与一年中的特定日期相关,而不与该日的确切时间(一天开始的那一刻)相关。

Java的LocalDate类位于java.time包中,因此其完全限定的类名称为java.time.LocalDate。 LocalDate实例是不可变的,因此对LocalDate的所有计算都返回一个新的LocalDate。

创建一个LocalDate

我们可以通过多种方式创建LocalDate。第一种方法是获取与今天的本地日期相对应的LocalDate。这是一个使用now()方法创建LocalDate的例子:

LocalDate localDate = LocalDate.now();

创建LocalDate的另一种方法是根据年,月和日的信息来创建它,如下所示:

LocalDate localDate2 = LocalDate.of(2014, 12, 31);

LocalDate的of()方法创建一个LocalDate实例,该实例表示特定年份的特定月份的特定日期,但没有时区信息。

访问LocalDate的日期信息

我们可以使用以下方法访问" LocalDate"的日期信息:

  • getYear()
  • getMonth()
  • getDayOfMonth()
  • getDayOfWeek()
  • getDayOfYear()

这是说明这些方法的用法的示例:

int   year       = localDate.getYear();
Month month      = localDate.getMonth();
int   dayOfMonth = localDate.getDayOfMonth();
int   dayOfYear  = localDate.getDayOfYear();
DayOfWeek dayOfWeek = localDate.getDayOfWeek();

注意getMonth()和getDayOfWeek()方法如何返回一个enum而不是int。从这些枚举中,我们可以通过调用其getValue()方法来获取其作为int值的信息。

LocalDate计算

我们可以使用以下一种或者多种方法,通过LocalDate类执行一组简单的日期计算:

  • plusDays()
  • plusWeeks()
  • plusMonths()
  • plusYears()
  • minusDays()
  • minusWeeks()
  • minusMonths()
  • minusYears()

以下是一些LocalDate计算示例,可让我们大致了解这些日期计算方法的工作方式:

LocalDate localDate = LocalDate.of(2014, 12, 31);

LocalDate localDate1 = localDate.plusYears(3);
LocalDate localDate2 = localDate.minusYears(3);

第一行创建一个新的LocalDate。第二行创建一个新的" LocalDate",该日期与第一个日期相同,但三年后。第三行创建一个新的" LocalDate"对象,该对象表示的日期与第一个相同,但早于3年。