JDK8的LocateDate类是表示有关日期的信息的类。它不包括有关一天中的时间信息,也没有有关时区的信息。不变对象中此类的一个实例。
要创建LocateDate类的实例,我们可以使用of()静态方法工厂。我们传递参数,如year,month和day到这个静态工厂方法。month的值可以是1到12之间的整数,也可以使用java.time.Month枚举指定的值,例如Month.JANUARY。
下面的代码段显示了如何使用LocalDate该类。
package org.nhooo.example.datetime; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.Month; public class LocalDateDemo { public static void main(String[] args) { LocalDate date = LocalDate.of(2014, 9, 7); int year = date.getYear(); Month month = date.getMonth(); int day = date.getDayOfMonth(); DayOfWeek dow = date.getDayOfWeek(); int monthLength = date.lengthOfMonth(); boolean leapYear = date.isLeapYear(); System.out.println("Year = " + year); System.out.println("Month = " + month); System.out.println("Day = " + day); System.out.println("Dow = " + dow); System.out.println("Month Length = " + monthLength); System.out.println("Leap Year = " + leapYear); } }
从上面的代码片段中可以看到,LocalDate该类还提供了一些从LocateDate实例获取值的方法。例如,您可以使用getYear()方法获得日期的年份。要获得月份,我们可以使用getMonth()将返回Month枚举的方法。为了获得成功,我们可以使用该getDayOfMonth()方法。
我们还可以获得诸如月份的长度之类的信息,并检查该月份代表的年份LocalDate是否为a年。运行上面的代码片段将为您提供以下结果:
Year = 2014 Month = SEPTEMBER Day = 7 Dow = SUNDAY Month Length = 30 Leap Year = false
除了使用上面显示的方法从一个LocalDate实例访问值之外,我们还可以使用TemporalField下面的代码片段中演示的方法。在这里,我们调用该get()方法并传递要使用ChronoField枚举读取的时态字段。该枚举实现TemporalField接口。
int year = date.get(ChronoField.YEAR); int month = date.get(ChronoField.MONTH_OF_YEAR); int day = date.get(ChronoField.DAY_OF_MONTH); System.out.println("year = " + year); System.out.println("month = " + month); System.out.println("day = " + day);