LocalDate和LocalTime可能是您将使用的java8日期和时间API的前两个类。LocalDate对象的一个实例是一个不可变的对象,表示一天中没有时间的日期,而LocalTime对象的另一个实例是一个不可变的对象,表示一个没有日期信息的时间。
LocalDate 对象具有获取与日期相关的信息的方法,如 getYear ()、 getMonth ()、 getDayOfMonth ()。而 LocalTime 对象具有获取与时间相关的信息的方法,如 getHour ()、 getMinute ()、 getSecond ()。除了使用这些方法,我们还可以使用 TemporalField 接口访问这些对象的值。我们可以将 TemporalField 传递给 LocalDate 和 LocalTime 对象的 get ()方法。TemporalField 是一个接口,其实现之一是 ChronoField 枚举,我们可以使用它来获取值。
让我们在下面的代码片段中查看一些示例:
package org.nhooo.example.datetime;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.temporal.ChronoField;
public class DateTimeValueTemporalField {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
System.out.println("Date = " + date);
System.out.println("Year = " + date.getYear());
System.out.println("Year = " + date.get(ChronoField.YEAR));
System.out.println("Month= " + date.getMonth().getValue());
System.out.println("Month= " + date.get(ChronoField.MONTH_OF_YEAR));
System.out.println("Date = " + date.getDayOfMonth());
System.out.println("Date = " + date.get(ChronoField.DAY_OF_MONTH));
System.out.println("DOW = " + date.getDayOfWeek().getValue());
System.out.println("DOW = " + date.get(ChronoField.DAY_OF_WEEK) + "\n");
LocalTime time = LocalTime.now();
System.out.println("Time = " + time);
System.out.println("Hour = " + time.getHour());
System.out.println("Hour = " + time.get(ChronoField.HOUR_OF_DAY));
System.out.println("Minute= " + time.getMinute());
System.out.println("Minute= " + time.get(ChronoField.MINUTE_OF_HOUR));
System.out.println("Second= " + time.getSecond());
System.out.println("Second= " + time.get(ChronoField.SECOND_OF_MINUTE));
System.out.println("Nano = " + time.getNano());
System.out.println("Nano = " + time.get(ChronoField.NANO_OF_SECOND));
}
}上面的代码片段的输出是:
Date = 2020-04-20 Year = 2020 Year = 2020 Month= 4 Month= 4 Date = 20 Date = 20 DOW = 1 DOW = 1 Time = 16:06:11.389185 Hour = 16 Hour = 16 Minute= 6 Minute= 6 Second= 11 Second= 11 Nano = 389185000 Nano = 389185000