java时间类相互转换
时间: 2024-02-04 22:09:54 浏览: 27
Java中提供了多个用于处理日期和时间的类,其中最常用的是`java.util.Date`、`java.util.Calendar`和`java.time.LocalDateTime`。
1. `java.util.Date`类是Java早期提供的日期和时间处理类,但它已经过时,不推荐使用。可以使用`java.util.Calendar`类来进行日期和时间的转换。
2. `java.util.Calendar`类是一个抽象类,提供了丰富的方法来处理日期和时间。可以通过以下方式进行相互转换:
- 将`java.util.Date`转换为`java.util.Calendar`:
```java
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
```
- 将`java.util.Calendar`转换为`java.util.Date`:
```java
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
```
3. Java 8引入了新的日期和时间API,位于`java.time`包中。其中,`java.time.LocalDateTime`类表示日期和时间,提供了更简洁、易用的方法来处理日期和时间。可以通过以下方式进行相互转换:
- 将`java.util.Date`转换为`java.time.LocalDateTime`:
```java
Date date = new Date();
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
```
- 将`java.time.LocalDateTime`转换为`java.util.Date`:
```java
LocalDateTime localDateTime = LocalDateTime.now();
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
```