localDate转date精度
时间: 2023-12-15 20:56:04 浏览: 42
LocalDate和Date的相互转化
在Java中,`LocalDate`和`Date`都是表示日期的类,但是它们的精度不同。`LocalDate`只包含年、月、日的信息,而`Date`除了年、月、日,还包含时、分、秒和毫秒的信息。
如果想将`LocalDate`转换成`Date`,需要给时、分、秒和毫秒设置一个默认值,比如都设置为0,以保持精度一致。具体实现如下:
```java
LocalDate localDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
```
这里使用`atStartOfDay()`方法将`LocalDate`转换为`LocalDateTime`,然后使用`toInstant()`方法将`LocalDateTime`转换为`Instant`,最后将`Instant`转换为`Date`类型。在转换时,时区设置为系统默认时区。
需要注意的是,由于`Date`类中的年份是从1900年开始计算的,所以在转换时需要将年份减去1900。同样地,由于`LocalDate`中的月份是从1开始计算的,而`Date`中的月份是从0开始计算的,所以在转换时还需要将月份减1。
阅读全文