我正在使用jodatime DateTime
变量。我想检查DateTime'x'是否在DateTime'y'之后。 isAfter函数只接受long
参数,而不是DateTime
,我发现这很奇怪。什么是比较两个DateTime
的最佳方法?
答案 0 :(得分:22)
ReadableInstant中有一个方法boolean isAfter(ReadableInstant instant)
,因此DateTime实现了ReadableInstant,它也应该接受一个DateTime。
答案 1 :(得分:3)
方法是描述
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
答案 2 :(得分:1)
public static void main(String[] args) {
System.err.println(new DateTime().isAfter(new DateTime().plusDays(1)));
}
适合我
答案 3 :(得分:0)
还有一个从getMillis()
继承的BaseDateTime
方法,它为您提供了表示日期的long
值,您可以比较两个long
值来确定之前的值,以及多少。