提问人:AkshayT 提问时间:6/24/2019 最后编辑:AnonymousAkshayT 更新时间:6/25/2019 访问量:2216
出现错误:日期中的 from(java.time.Instant) 无法应用于 (org.threeten.bp.instant)
Getting error: from(java.time.Instant) in Date cannot be applied to (org.threeten.bp.instant)
问:
我正在尝试将其转换为,但遇到了问题标题中提到的错误。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)
我正在尝试转换
- LocalDate 到日期
- Date 到 LocalDate
答:
3赞
Anonymous
6/25/2019
#1
您的代码基本上是正确的,并且可以与 一起使用,只是不能与 中的相同类的实现一起使用。因此,您的选择有两个:java.time.LocalDate
org.threeten.bp.LocalDate
- 更改要使用的所有导入,而不是停止使用向后移植。
java.time
org.threeten.bp
- 用于旧版日期时间类与 ThreeTen Backport 中的类之间的转换。
org.threeten.bp.DateTimeUtils
选项 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 已转换为 Tue Jun 25 00:00:00 CEST 2019
DateTimeUtils
也有相反转换的方法。toInstant(Date)
评论
0赞
AkshayT
6/25/2019
我切换到并完全删除了该库。但谢谢你的回答。我会尝试一下,如果它有效,我会接受答案。JodaTime
org.threeten.bp
1赞
Anonymous
6/25/2019
很高兴你有东西可以工作。Joda-Time 官方建议:现在要求用户迁移到 java.time
(JSR-310)。因此,您应该更喜欢 java.time(内置或通过向后移植)。更多信息请见Joda-Time主页。
评论