Date 转 LocalDateTime
在 Java 8 及以上的版本中,可以使用 java.time.LocalDateTime 类来表示一个不带有时区信息的日期时间。如果需要将 java.util.Date 对象转换为 LocalDateTime 对象,可以按照以下步骤进行:
- 将Date对象转换为Instant对象,即一个不带有时区信息的时间戳
- 将Instant对象转换为一个LocalDateTime对象
public static void main(String[] args) {
// 获取当前时间,Date对象
Date date = new Date();
// 将 Date 转换为 Instant
Instant instant = date.toInstant();
// 将 Instant 转换为 LocalDateTime
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println("Date:" + date);
System.out.println("LocalDateTime:" + localDateTime);
}
这样就将Date转换为LocalDateTime对象了
LocalDateTime 转 Date
如果需要将 LocalDateTime 对象转换为 java.util.Date 对象,可以按照以下步骤进行:
- 将LocalDateTime对象使用atZone()转换为一个带有时区信息的ZonedDateTime
- 将ZonedDateTime对象使用toInstant() 方法将其转换为一个带有时区信息的时间戳 Instant 实例。
- 将上述 Instant 实例转换为一个Date 实例。
public static void main(String[] args) {
// 获取当前时间
LocalDateTime localDateTime = LocalDateTime.now();
// 将 LocalDateTime 转换为 ZonedDateTime
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
// 将 ZonedDateTime 转换为 Date
Date date = Date.from(zonedDateTime.toInstant());
System.out.println("LocalDateTime:" + localDateTime);
System.out.println("Date:" + date);
}
这样就将LocalDateTime转换为Date对象了