我正在尝试将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)
我正在尝试转换
答案 0 :(得分:0)
您的代码基本上是正确的,并且可以与java.time.LocalDate
一起使用,但不能与org.threeten.bp.LocalDate
中相同类的实现一起使用。因此,您有两种选择:
java.time
而不是org.threeten.bp
,并停止使用反向端口。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
DateTimeUtils
还有一个toInstant(Date)
方法用于相反的转换。