Jodatime DateTime
変数を使用しています。 DateTime'x 'がDateTime'y'の後にあるかどうかを確認したいと思います。 isAfter関数はlong
パラメーターのみを受け入れ、DateTime
は受け入れません。これは非常に奇妙だと思います。 2つのDateTime
sを比較する最良の方法は何ですか?
ReadableInstantにはメソッドboolean isAfter(ReadableInstant instant)
があるため、DateTimeはReadableInstantを実装するため、DateTimeも受け入れる必要があります。
メソッド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
を取るので、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)));
}
私のために働く
BaseDateTime
から継承されたgetMillis()
メソッドもあります。これは日付を表すlong
値を提供し、2つのlong
値を比較してどちらかを判断できます。前に、そしてどれだけです。