Java LocalDate

时间:2020-02-23 14:36:33  来源:igfitidea点击:

Java LocalDate类是Java 8 Date API的一部分。

Java LocalDate

  • Java LocalDate是不可变的类,因此是线程安全的。

  • LocalDate以YYYY-MM-dd格式提供日期输出。

  • LocalDate类没有时间或者时区数据。
    因此LocalDate适合代表生日,国定假日等日期。

  • LocalDate类实现了Temporal,TemporalAdjuster,ChronoLocalDate和Serializable接口。

  • LocalDate是最后一堂课,因此我们无法扩展它。

  • LocalDate是一个基于值的类,因此我们应该使用equals()方法比较两个LocalDate实例是否相等。

导入Java LocalDate类

Java LocalDate类在java.time包中。
因此,您可以使用import语句将其导入:

import java.time.LocalDate;

创建LocalDate实例

有四种创建LocalDate实例的标准方法。

  • 调用静态的" now()"方法,该方法从系统时钟返回当前日期。

  • 通过将Year,Month和Day值传递给LocalDate of()方法

  • 使用LocalDate的parse()方法。

  • 使用LocalDate的ofInstant()方法,如下所示。

从LocalDate类检索日期信息

Java LocalDate类提供了许多有用的方法来获取有关日期的更多详细信息,例如年,月,日等。
让我们通过一些示例程序来研究这些内容。

  • getYear():返回LocalDate对象中包含的年份。

  • getMonth():返回LocalDate对象中包含的月份。

  • getDayOfMonth():返回LocalDate对象中包含的月份中的某天。

  • getDayOfWeek():从LocalDate对象返回星期几。

  • getDayOfYear():从LocalDate实例返回一年中的一天。

Java LocalDate方法–加号和减号

  • plusYears(long yearsToAdd):将yearsToAdd添加到年份值并返回LocalDate对象的副本。
    由于LocalDate是不可变的,因此指定的对象不会更改。
    同样,如果新日期无效,则返回最后一个有效日期。

  • plusWeeks(long weeksToAdd):在添加weeksToAdd周之后,返回一个新的LocalDate实例,指定对象没有变化。

  • plusMonths(long monthsToAdd):在添加monthsToAdd月之后,返回指定LocalDate对象的副本。

  • plusDays(long daysToAdd):在添加daysToAdd天后返回指定LocalDate对象的副本。

  • minusDays(long daysToSubtract):减去daysToSubtract天后,返回指定LocalDate对象的副本。

  • minusWeeks(long weeksToSubtract):减去weeksToSubtract周后,返回指定LocalDate对象的副本。

  • minusMonths(long monthsToSubtract):减去monthsToSubtract月后,返回指定LocalDate对象的副本。

  • minusYears(long yearsToSubtract):减去yearsToSubtract年后,返回指定LocalDate对象的副本。
    如果新的LocalDate无效(2月29日),则返回上一个有效日期。

迄今为止的Java LocalDate

我们应该避免使用传统的java.util.Date类,但是有时我们必须将LocalDate转换为Date以获取传统支持。
下面是将LocalDate转换为Date的两种方法,您可以使用其中任何一种。

LocalDate ldObj = LocalDate.now();
		
System.out.println(ldObj); //prints "2016-11-10"