我在使用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之间的天数,我做错了什么?
发布于 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.LocalDate与java.time.LocalDate混为一谈。这就是你的编译器所抱怨的。不要把两个图书馆混为一谈。它们不兼容,部分相等的名称也不会有帮助,但会增加混淆。
解决方案:完全放弃Joda-Time,因为您使用的是Java-8。而不是Days.daysBetween(...),您可以使用:
long days = ChronoUnit.DAYS.between(date, date1);发布于 2015-04-26 14:39:05
应该使用以下方法之一将LocalDate转换为DateTime
LocalDate::toDateTimeAtCurrentTime()
LocalDate::toDateTimeAtStartOfDay()
LocalDate::toDateTime( LocalTime )
LocalDate::toDateTime( LocalTime , DateTimeZone )然后将DateTime传递给daysBetween()方法。
https://stackoverflow.com/questions/29878936
复制相似问题