java 8 将 List<LocalDate> 转化为List<Date>
时间: 2024-09-20 14:08:59 浏览: 84
java 按照每周分组
在 Java 8 中,将 `List<LocalDate>` 转换为 `List<Date>` 需要注意的是,`LocalDate` 是 Java 8 引入的时间处理类,而 `Date` 是旧版 Java 中的标准日期类,它们代表的时间精度和范围不同。因为 `LocalDate` 没有考虑时区和毫秒级别,所以直接转换可能会丢失一些信息。
如果你想要将 `LocalDate` 列表转换成 `Date` 列表,你需要为每个 `LocalDate` 对象创建一个新的 `Date` 实例,并且通常需要考虑时区。可以使用 `java.time.ZonedDateTime` 和 `java.util.Date` 类配合完成这个任务,示例如下:
```java
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
public List<Date> convertToLocalDateToList(Date[] dates) {
List<LocalDate> localDates = new ArrayList<>();
for (Date date : dates) {
localDates.add(LocalDate.ofInstant(date.toInstant(), ZoneId.systemDefault()));
}
List<Date> result = new ArrayList<>();
for (LocalDate localDate : localDates) {
result.add(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli());
}
return result;
}
```
在这个例子中,我们首先将每个 `LocalDate` 设置为其所属的系统默认时区的开始时间,然后将结果转换为 `Instant`,再进一步转为 `long` 形式的 `Date` 对象。
阅读全文