私は、transactionDateがvalidFromとvalidUntilの間にあるかどうかを調べるために2つの日付を比較する方法があります。validFromとvalidUntiの値は "2017-01-01 00:00:00"取引日は時々異なるタイムゾーンへの変換のために異なる時間で来る。Javaの比較2つの日付年月日
public boolean isDateWithinEmploymentDeploymentValidityPeriod(Date transcationDate, Parameter parameter) {
return transcationDate.compareTo(parameter.getValidFrom()) >= 0
&& (parameter.getValidUntil() == null || transcationDate.compareTo(parameter.getValidUntil()) <= 0);
}
ので、私は唯一の年月日を比較比較する必要があるとのGregorianCalendarに日付を変換し、別途年間の月と日をgetingすることなく、最も効率的な方法であるもの、時間を考慮していませんか?
注意:日付フィールドを取得するには、特定のタイムゾーンで変換を行う必要があります。 「日付」にはタイムゾーンがありません。 –
validFromとvalidUntilとは何ですか?日付?文字列?あなたが投稿したコードに何が問題なのですか?(あなたが 'transcationDate(parameter.getValidUntil())'に 'compareTo'を貼りつけるのを忘れたと仮定した場合)? –
何が間違っているのは、たとえば、validUntilが "2017-03-01 00:00:00"で、transactionDateが "2017-03-01 10:00:00"の場合、有効期間内であることをtrueに戻し、validUntilとvalidFromはDateオブジェクト – Dadonis