LocalDateTime是在java8语言中引入的,作为日期和时间API增强的一部分。它表示日期和时间,不包含2018-09-06T06:12:40的时区信息,它是不可改变的对象,一旦创建,将不会被修改,它用于存储日期,如生日和假期的时间信息。本地日期只包含年、月、日、时、分、秒的纳米精度。
语法
该类实现了LocalDate的ChronoLocalDateTime。
public final class LocalDateTime
implements Temporal, TemporalAdjuster, ChronoLocalDateTime, Serializable
例子
我们将通过使用实例来了解如何使用LocalDateTime。
如何获得当前日期和时间
now()方法使用默认的系统时区返回日期和时间。
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println(currentDateTime); //2018-09-06T21:52:49.714773400
它有一个静态的of()方法,需要java.time.LocalDate和java.time.LocalTime来创建LocalDateTime对象。下面是一个方法使用的例子。
LocalDateTime currentDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.now());
System.out.println(currentDateTime);
localdatetime .parse方法接受字符串对象和DateTimeFormatter实例。用模式创建的Datetimeformatter对象。
String string = "2018-12-12 12:30";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime localDateTime = LocalDateTime.parse(string, dateTimeFormatter);
System.out.println(localDateTime); //2018-12-12T12:30
日期是传统的Date类和java8版本中引入的LocalDateTime。
LocalDateTime localDateTime =LocalDateTime.now();
Date date = java.sql.Timestamp.valueOf( localDateTime );
System.out.println(date);
它提供了ofInstant()方法,该方法接受即时对象和区域ID--系统默认的区域ID LocalDateTime.toInstant()方法被用来将LocalDateTime转换为即时。
Instant instant = Instant.now();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(localDateTime);
System.currentTimeMillis()返回当前Epcoh毫秒。使用Instant.ofEpochMilli()方法创建Instant,将Instant转换为LocalDateTime。
LocalDateTime localDateTime =
LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), TimeZone
.getDefault().toZoneId());
System.out.println(localDateTime);