Datefimeformatter.parse()为什么不能传date对象
时间: 2024-01-10 16:04:59 浏览: 62
`DateTimeFormatter.parse()` 方法不能直接传入 `Date` 对象,是因为它们是不同的类,`Date` 是 Java 早期提供的日期时间类,而 `DateTimeFormatter` 是在 Java 8 中引入的日期时间格式化类。
`DateTimeFormatter.parse()` 方法需要传入一个字符串作为参数,表示要解析的日期时间字符串,然后返回一个解析后的 `TemporalAccessor` 对象,例如 `LocalDate`、`LocalTime` 或 `ZonedDateTime` 等。因此,如果要将 `Date` 对象转换为 `LocalDate`、`LocalTime` 或 `ZonedDateTime` 等,需要先将 `Date` 对象转换为字符串,然后再使用 `DateTimeFormatter.parse()` 方法进行解析。
示例代码:
```java
// 将 Date 对象转换为字符串
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(date);
// 使用 DateTimeFormatter 解析日期时间字符串
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateStr, formatter);
System.out.println(dateTime);
```
上述代码先将 `Date` 对象转换为字符串,然后使用 `DateTimeFormatter` 解析日期时间字符串,最终得到一个 `LocalDateTime` 对象。
阅读全文