Ответ 1
В ReadableInstant есть метод boolean isAfter(ReadableInstant instant)
, так как DateTime реализует ReadableInstant, он также должен принимать DateTime.
Я использую переменную jodatime DateTime
. Я хотел бы проверить, является ли DateTime 'x' после DateTime 'y'. Функция isAfter принимает только параметр long
, а не DateTime
, который я нахожу очень странным. Каков наилучший способ сравнить два DateTime
s?
В ReadableInstant есть метод boolean isAfter(ReadableInstant instant)
, так как DateTime реализует ReadableInstant, он также должен принимать DateTime.
Метод isAfter Описание
public boolean isAfter(ReadableInstant instant)
Is this instant after the instant passed in comparing solely by millisecond.
Specified by:
isAfter in interface ReadableInstant
Parameters:
instant - an instant to check against, null means now
Returns:
true if the instant is after the instant passed in
В качестве аргумента требуется ReadableInstant
, поэтому DateTime
также может быть передано как ясно из DateTime Hierarchy
Class DateTime
java.lang.Object
extended by org.joda.time.base.AbstractInstant
extended by org.joda.time.base.AbstractDateTime
extended by org.joda.time.base.BaseDateTime
extended by org.joda.time.DateTime
All Implemented Interfaces:
Serializable, Comparable<ReadableInstant>, ReadableDateTime, ReadableInstant
Более подробная информация взята из joda api docs
public static void main(String[] args) {
System.err.println(new DateTime().isAfter(new DateTime().plusDays(1)));
}
работает для меня
Существует также метод getMillis()
, унаследованный от BaseDateTime
, который дает вам значение long
, представляющее даты, вы можете сравнить два значения long
, чтобы определить, что до и сколько.