无法实例化类型Duration-Joda Java
我正在计算两个日期之间的差异。这是我的代码:无法实例化类型Duration-Joda Java,java,jodatime,Java,Jodatime,我正在计算两个日期之间的差异。这是我的代码: DateTime today = new DateTime(); DateTime yesterday = today.minusDays(1); Duration duration = new Duration(yesterday, today); 不幸的是,我不能运行上面的代码。在运行之前,我在eclipse中遇到以下错误: Cannot instantiate the type Duration 我该怎么做才能修复它?更改 Durati
DateTime today = new DateTime();
DateTime yesterday = today.minusDays(1);
Duration duration = new Duration(yesterday, today);
不幸的是,我不能运行上面的代码。在运行之前,我在eclipse中遇到以下错误:
Cannot instantiate the type Duration
我该怎么做才能修复它?更改
Duration duration = new Duration(yesterday, today);
到
该类没有与您使用的构造函数相匹配的构造函数。(
DateTime
,DateTime
)您应该使用org.joda.time.Duration类
import org.joda.time.DateTime;
import org.joda.time.Duration;
DateTime today = new DateTime();
DateTime yesterday = today.minusDays(1);
Duration duration = new Duration(yesterday, today);
System.out.println(duration.getStandardDays());
@PM77-1
DateTime
是一个ReadableInstant
@yasuo,你能在这里发布你的代码中Duration
的导入语句吗?@realpoinsist-。DateTime
是一个ReadableInstant
。我更改了它。我又遇到了同样的问题。DateTime today=new DateTime();DateTime昨天=今天。天数(1);long d1=昨天。getMillis();long d2=今天。getMillis();持续时间=新的持续时间(d1、d2)@yasuo,编辑你的问题,写完整的代码,包括导入语句。好的,我创建了。我导入了错误的库。我使用javax.xml.datatype.Duration而不是org.joda.time.Duration.:这应该是一个评论,而不是一个答案。@realponsignist我认为这是更好的答案。如果没有正确导入的.getMillis(),为什么要使用.getMillis()。这不是答案。你只是在问OP他在干什么。“为我工作”也不是答案。确实,被接受的答案不是正确的答案。但是你需要首先用注释找出问题是否出在导入上,然后你可以发布一个答案,说“你导入了错误的类,你导入的类没有公共构造函数”等等。我发布了我的答案。一分钟后,你发表了你的评论:“@yasuo,编辑你的问题,写完整的代码,包括导入语句。”现在看看OP上的评论,计算我在那里发表评论的时间。在任何情况下,这都是无关的:OP的问题不是答案。
import org.joda.time.DateTime;
import org.joda.time.Duration;
DateTime today = new DateTime();
DateTime yesterday = today.minusDays(1);
Duration duration = new Duration(yesterday, today);
System.out.println(duration.getStandardDays());