[解決済み】時間部分を除いた2つの日付を比較する方法は?
質問
java.util.Dateの時間部分を無視するcompareToメソッドを持ちたいのですが、どうすればいいですか?これを解決する方法はいくつもあると思うんだ。一番簡単な方法は何でしょうか?
解決方法は?
更新:当時はJoda Timeが立派に推奨されていましたが、Joda Timeを使うには
java.time
ライブラリの代わりに、可能であればJava 8+の
私の好みは ジョダ時間 を使えば、驚くほど簡単にできます。
DateTime first = ...;
DateTime second = ...;
LocalDate firstDate = first.toLocalDate();
LocalDate secondDate = second.toLocalDate();
return firstDate.compareTo(secondDate);
EDIT: コメントにあるように、もしあなたが
DateTimeComparator.getDateOnlyInstance()
よりシンプルになります :)
// TODO: consider extracting the comparator to a field.
return DateTimeComparator.getDateOnlyInstance().compare(first, second);
("Use Joda Time"は、以下のことを尋ねるほぼすべてのSO質問の基本です。
java.util.Date
または
java.util.Calendar
. 徹底的に優れたAPIなのです。もしあなたが
なんでも
日付や時刻を重要視しているのであれば、可能であれば本当に使うべきです)。
もし、あなたが絶対に
強制
のインスタンスを作成し、ビルトイン API を使用する必要があります。
Calendar
を、適切な日付と適切なタイムゾーンを指定してください。そして、各カレンダーの時、分、秒、ミリ秒の各フィールドを0に設定し、結果の時間を比較することができます。Jodaのソリューションに比べれば、間違いなく不格好ですが :)
タイムゾーンの部分は重要ですね。
java.util.Date
は
常に
UTCを基準としています。私が日付に興味を持ったほとんどの場合、それは日付でした
特定のタイムゾーンで
. これだけでは
Calendar
またはJoda Timeを使用します(タイムゾーンを自分で考慮したい場合は別ですが、これはお勧めしません)。
アンドロイド開発者向けクイックリファレンス
//Add joda library dependency to your build.gradle file
dependencies {
...
implementation 'joda-time:joda-time:2.9.9'
}
サンプルコード(例)
DateTimeComparator dateTimeComparator = DateTimeComparator.getDateOnlyInstance();
Date myDateOne = ...;
Date myDateTwo = ...;
int retVal = dateTimeComparator.compare(myDateOne, myDateTwo);
if(retVal == 0)
//both dates are equal
else if(retVal < 0)
//myDateOne is before myDateTwo
else if(retVal > 0)
//myDateOne is after myDateTwo
関連
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] プロトコルハンドラの初期化に失敗しました。
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] x--やx++はここで何をするのですか?
-
[解決済み】2つのjava.util.Datesを比較して、同じ日であるかどうかを確認する
-
[解決済み】AndroidプロジェクトでThreeTenABPを使用する方法