web-dev-qa-db-ja.com

JodaTimeを使用して、日付Xが日付Yより後かどうかを確認します

Jodatime DateTime変数を使用しています。 DateTime'x 'がDateTime'y'の後にあるかどうかを確認したいと思います。 isAfter関数はlongパラメーターのみを受け入れ、DateTimeは受け入れません。これは非常に奇妙だと思います。 2つのDateTimesを比較する最良の方法は何ですか?

12
Mike Baxter

ReadableInstantにはメソッドboolean isAfter(ReadableInstant instant)があるため、DateTimeはReadableInstantを実装するため、DateTimeも受け入れる必要があります。

22
piet.t

メソッドisAfter Description

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を取るので、DateTimeDateTime 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 から取得されています

3
Prateek
public static void main(String[] args) {
    System.err.println(new DateTime().isAfter(new DateTime().plusDays(1)));
}

私のために働く

1
u6f6o

BaseDateTimeから継承されたgetMillis()メソッドもあります。これは日付を表すlong値を提供し、2つのlong値を比較してどちらかを判断できます。前に、そしてどれだけです。

1
Darryl Gerrow