使用JodaTime检查日期X是否在日期Y之后

时间:2013-08-30 11:49:45

标签: java jodatime

我正在使用jodatime DateTime变量。我想检查DateTime'x'是否在DateTime'y'之后。 isAfter函数只接受long参数,而不是DateTime,我发现这很奇怪。什么是比较两个DateTime的最佳方法?

4 个答案:

答案 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值来确定之前的值,以及多少。