首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Joda betweenDays (LocalDate,LocalDate)不适用

Joda betweenDays (LocalDate,LocalDate)不适用
EN

Stack Overflow用户
提问于 2015-04-26 14:31:34
回答 2查看 3.5K关注 0票数 3

我在使用Joda daysBetween函数时遇到了问题。它一直在告诉我

代码语言:javascript
复制
The method daysBetween(ReadableInstant, ReadableInstant) in the type Days is not applicable for the arguments (LocalDate, LocalDate)

当我尝试插入两个localdate项时。

代码语言:javascript
复制
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
        LocalDate date = LocalDate.parse(reviewDate, formatter);
        Date dateNow = new Date();
        LocalDate date1 = LocalDate.parse(dateNow.toString(),formatter);
        int days = Days.daysBetween(date,date1).getDays();

我试图得到reviewDate和当前日期date1之间的天数,我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-26 16:24:26

你说的是Joda-Time级org.joda.time.LocalDate。当然,表达式Days.daysBetween(ReadablePartial,ReadablePartial)可以没有问题地处理这样的输入。,但是您有问题吗?!这给了我一个想法,你的进口可能是错误的。事实上:

您还可以使用这个表达式:

DateTimeFormatter.ofPattern("MMMM,yyyy",Locale.ENGLISH);

,但该代码不是Joda代码,而是Java-8代码.显然,您将不同的类org.joda.time.LocalDatejava.time.LocalDate混为一谈。这就是你的编译器所抱怨的。不要把两个图书馆混为一谈。它们不兼容,部分相等的名称也不会有帮助,但会增加混淆。

解决方案:完全放弃Joda-Time,因为您使用的是Java-8。而不是Days.daysBetween(...),您可以使用:

代码语言:javascript
复制
long days = ChronoUnit.DAYS.between(date, date1);
票数 5
EN

Stack Overflow用户

发布于 2015-04-26 14:39:05

应该使用以下方法之一将LocalDate转换为DateTime

代码语言:javascript
复制
LocalDate::toDateTimeAtCurrentTime()
LocalDate::toDateTimeAtStartOfDay()
LocalDate::toDateTime( LocalTime )
LocalDate::toDateTime( LocalTime , DateTimeZone )

然后将DateTime传递给daysBetween()方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29878936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档