如何使用java.time.LocalDateTime类?
该java.time.LocalDateTime级表示没有时区的日期和时间的信息。我们可以创建LocalDateTime使用可用的静态工厂方法,如of()方法或通过结合一个实例LocalDate和LocalTime。
以下代码片段将向您展示两种方式。首先,我们从使用of()可以传递诸如年,月,日,小时,分钟和秒之类的参数的方法开始。在接下来的一行,我们也用of()的方法,但这次我们传递的一个实例LocalDate,并LocalTime作为参数。
package org.nhooo.example.datetime; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Month; public class LocalDateTimeDemo { public static void main(String[] args) { //使用of()创建LocalDateTime的实例 //具有完整日期和时间参数的静态工厂方法。 LocalDateTime dateTime = LocalDateTime.of(2014, Month.SEPTEMBER, 11, 16, 15, 15); System.out.println("dateTime = " + dateTime); //结合LocalDate和LocalTime创建一个新的 //LocalDateTime的实例。 LocalDate date = LocalDate.now(); LocalTime time = LocalTime.now(); LocalDateTime dateTime2 = LocalDateTime.of(date, time); System.out.println("dateTime2 = " + dateTime2); //使用时间从LocateDate创建LocalDateTime //atTime()方法。 LocalDateTime dateTime3 = date.atTime(16, 15, 15); LocalDateTime dateTime4 = date.atTime(time); System.out.println("dateTime3 = " + dateTime3); System.out.println("dateTime4 = " + dateTime4); //使用以下命令从LocalTime创建带有日期的LocalDateTime //atDate()方法。 LocalDateTime dateTime5 = time.atDate(date); System.out.println("dateTime5 = " + dateTime5); //使用以下命令从LocalDateTime获取LocalDate和LocalTime //toLocalDate()和toLocalTime()方法。 LocalDate date1 = dateTime5.toLocalDate(); LocalTime time1 = dateTime5.toLocalTime(); System.out.println("date1 = " + date1); System.out.println("time1 = " + time1); } }
我们也可以创建的一个实例LocalDateTime,通过使用LocalDate的atTime()方法或LocalTime的atDate()如在代码段上方观察方法。
在代码片段的最后,您可以看到如何使用and方法从实例获取LocalDateor或LocalTime信息。LocalDateTimetoLocalDate()toLocalTime()
运行此代码段将为您提供以下结果:
dateTime = 2014-09-11T16:15:15 dateTime2 = 2014-09-11T16:25:37.891 dateTime3 = 2014-09-11T16:15:15 dateTime4 = 2014-09-11T16:25:37.891 dateTime5 = 2014-09-11T16:25:37.891 date1 = 2014-09-11 time1 = 16:25:37.891