2

我正在尝试将其转换为org.threeten.bp.LocalDate问题java.util.Date标题中提到的错误。

我正在使用以下进行转换:

Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

错误:

from(java.time.Instant) in Date cannot be applied to (org.threeten.bp.instant)

我正在尝试转换

  1. 本地日期到日期
  2. 日期到 LocalDate
4

1 回答 1

3

您的代码基本上是正确的,并且可以java.time.LocalDateorg.threeten.bp.LocalDate. 所以你的选择有两个:

  1. 将所有导入更改为使用java.time而不是org.threeten.bp并停止使用反向端口。
  2. 用于org.threeten.bp.DateTimeUtils旧日期时间类和 ThreeTen Backport 中的类之间的转换。

选项 2 的示例:

    LocalDate currentDate = LocalDate.now(ZoneId.of("America/Whitehorse"));
    Date d = DateTimeUtils.toDate(
            currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    System.out.println("" + currentDate + " was converted to " + d);

刚才在我的计算机上运行时,打印了以下代码段:

2019-06-25 已转换为 2019 年 6 月 25 日星期二 00:00:00 CEST

DateTimeUtils还有一种toInstant(Date)反向转换的方法。

链接: DateTimeUtils文档

于 2019-06-25T09:43:41.473 回答