我在使用 Joda daysBetween
函数时遇到问题。它一直在告诉我
The method daysBetween(ReadableInstant, ReadableInstant) in the type Days is not applicable for the arguments (LocalDate, LocalDate)
当我尝试插入两个 localdate
项目时。
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
之间的天数,我做错了什么?
最佳答案
你说的是 Joda-Time-class org.joda.time.LocalDate
。当然,表达式 Days.daysBetween(ReadablePartial,ReadablePartial)
可以 process such an input without problems ,但你有问题吗?!这让我觉得你的导入可能是错误的。事实上:
你也用这个表达式:
DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
但该代码不是 Joda 代码,而是 Java-8 代码。因此,您显然混淆了不同的类 org.joda.time.LocalDate
和 java.time.LocalDate
。这就是您的编译器所提示的。不要混合使用这两个库。它们不兼容,部分相同的名称也无济于事,反而会增加混淆。
解决方案: 完全放弃 Joda-Time,因为您使用的是 Java-8。代替 Days.daysBetween(...)
你可以使用:
long days = ChronoUnit.DAYS.between(date, date1);
关于java - Joda betweenDays (LocalDate,LocalDate) 不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29878936/