[解決済み】2つのjava.util.Datesを比較して、同じ日であるかどうかを確認する
2022-04-04 08:47:55
質問
2つのファイルを比較する必要があります。
Date
のようなものです(例
date1
と
date2
) を思いつき、それを
boolean sameDay
という2つの真である
Date
は同じ日を共有し、そうでない場合は偽となります。
どうすればいいのでしょうか?ここには混乱の渦があるようです...そして、私は可能な限りJDKを越えて他の依存関係を引っ張ることを避けたいと考えています。
を明確にすることです。
もし
date1
と
date2
が同じ年、月、日を共有している場合、次のようになります。
sameDay
は真、それ以外は偽となります。タイムゾーンを指定できればいいのですが、動作がわかっていれば、GMTでもローカルタイムでもかまいません。
もう一度、明確にします。
date1 = 2008 Jun 03 12:56:03
date2 = 2008 Jun 03 12:59:44
=> sameDate = true
date1 = 2009 Jun 03 12:56:03
date2 = 2008 Jun 03 12:59:44
=> sameDate = false
date1 = 2008 Aug 03 12:00:00
date2 = 2008 Jun 03 12:00:00
=> sameDate = false
解決方法は?
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
boolean sameDay = cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR) &&
cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR);
同じ日」というのは、タイムゾーンが異なる場合、言うほど単純な概念ではないことに注意してください。上記のコードでは、両方の日付について、実行中のコンピューターで使用されているタイムゾーンに基づいた日を計算します。もしこれが必要でない場合は、関連するタイムゾーンを
Calendar.getInstance()
の呼び出しは、quot;同じ日" の正確な意味を決めた後に行ってください。
そうそう、ヨーダ・タイムの
LocalDate
を使えば、全体がもっとすっきりして簡単になります(ただし、タイムゾーンが絡む難しさは同じです)。
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
[解決済み] トークンのシンタックスエラー、これらのトークンを削除してください [closed].
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] 2つの日付の間の日数を求める
-
[解決済み] enumとは何か、なぜ有用なのか?
-
[解決済み】ある日付から曜日を求めるには?
-
[解決済み] PHPを使用して2つの日付の差を計算する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違いについて
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] 文字列の巻き方
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み】時間部分を除いた2つの日付を比較する方法は?