java date 转LocalDateTime
时间: 2023-07-20 13:05:49 浏览: 84
在 Java 8 中,可以使用 `java.time` 包中的 `LocalDateTime` 类来表示日期和时间。要将 `java.util.Date` 对象转换为 `LocalDateTime` 对象,可以按照以下步骤进行操作:
1. 首先,将 `java.util.Date` 对象转换为 `Instant` 对象。可以使用 `Date` 对象的 `toInstant()` 方法来完成此操作。
2. 然后,使用 `Instant` 对象的 `atZone()` 方法将其转换为 `ZonedDateTime` 对象。需要指定时区,可以使用 `ZoneId` 类中的静态方法获取时区对象。
3. 最后,使用 `ZonedDateTime` 对象的 `toLocalDateTime()` 方法将其转换为 `LocalDateTime` 对象。
下面是示例代码:
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
public class DateToLocalDateTimeExample {
public static void main(String[] args) {
// 创建一个 java.util.Date 对象
Date date = new Date();
// 将 Date 对象转换为 Instant 对象
Instant instant = date.toInstant();
// 将 Instant 对象转换为 ZonedDateTime 对象
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
// 将 ZonedDateTime 对象转换为 LocalDateTime 对象
LocalDateTime localDateTime = zonedDateTime.toLocalDateTime();
System.out.println("java.util.Date: " + date);
System.out.println("java.time.LocalDateTime: " + localDateTime);
}
}
```
在上面的示例中,我们首先创建了一个 `java.util.Date` 对象,然后将其转换为 `Instant` 对象,接着将其转换为 `ZonedDateTime` 对象,最后将其转换为 `LocalDateTime` 对象。结果输出如下:
```
java.util.Date: Tue Nov 16 17:33:59 CST 2021
java.time.LocalDateTime: 2021-11-16T17:33:59.721
```
阅读全文