Java の日付を比較する方法はいくつかあります。日付は、コンピューター内部では (長い) 時点、つまり 1970 年 1 月 1 日から経過したミリ秒数として表されます。 Java では、Date はオブジェクトであり、複数の比較メソッドが含まれています。 2 つの日付を比較する方法は、基本的に日付の時刻を比較することです。
ステップ 方法1方法 1/4: compareToの使用 {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/6\/6a\/4301351-1.jpg\/v4-460px-4301351-1.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/6\/6a\/4301351-1.jpg\/v4-728px-4301351-1.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1 compareTo を使用します。 Date は Comparable<Date> を実装しているため、compareTo メソッドを使用して 2 つの日付を直接比較できます。日付が同じ時点の場合、メソッドはゼロを返します。比較対象の日付が日付引数より前の場合は、ゼロ未満の値を返します。比較対象の日付が他の日付引数より後の場合は、ゼロより大きい値を返します。日付が等しい場合は、値 0 が返されます。 [1] {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/8\/8c\/4301351-2.jpg\/v4-460px-4301351-2.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/8\/8c\/4301351-2.jpg\/v4-728px-4301351-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 日付オブジェクトを作成します。 比較を始める前に、各日付のオブジェクトを作成する必要があります。 1 つの方法は、SimpleDateFormat クラスを使用することです。日付オブジェクトに日付値を簡単に入力できます。 SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd" );
//新しい日付オブジェクトの値を宣言するために使用されます。日付を作成するときは同じ日付形式を使用する
日付 date1 = sdf . parse ( "1995-02-23" ); //date1 は 1995 年 2 月 23 日
日付 date2 = sdf . parse ( "2001-10-31" ); //date2 は 2001 年 10 月 31 日
日付 date3 = sdf . parse ( "1995-02-23" ); //date3 は 1995 年 2 月 23 日
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/5\/5d\/4301351-3.jpg\/v4-460px-4301351-3.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/5\/5d\/4301351-3.jpg\/v4-728px-4301351-3.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3日付オブジェクトを比較します。 次のコードは、それぞれの場合(より小さい、等しい、より大きい)を示します。 date1 . compareTo ( date2 ); //date1 < date2 なので、0 未満の値を返します
date2 . compareTo ( date1 ); //date2 > date1 なので、0 より大きい値を返します
date1 . compareTo ( date3 ); //date1 = date3 の場合、コンソールに 0 が出力されます
広告する 方法2方法 2/4:等号、後、前の使用 {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/7\/70\/4301351-4.jpg\/v4-460px-4301351-4.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/7\/70\/4301351-4.jpg\/v4-728px-4301351-4.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1等号、後、前を使用します。 日付を比較するには、equals、after、before メソッドを使用できます。 2 つの日付が同じ時点である場合、equals メソッドは true を返します。この例では、以前に作成した compareTo メソッドで日付を使用します。 [2] {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/d\/dd\/4301351-5.jpg\/v4-460px-4301351-5.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/d\/dd\/4301351-5.jpg\/v4-728px-4301351-5.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 before メソッドを使用して日付を比較します。 次のコードは、true の場合と false の場合の両方を示しています。 date1 が date2 より前の場合、before は true を返します。それ以外の場合は false を返します。 System.out.print ( date1.before ( date2 ) ) ; // 出力 は true
System.out.print ( date2.before ( date2 ) ) ; // 出力 は false
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/a\/ad\/4301351-6.jpg\/v4-460px-4301351-6.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/a\/ad\/4301351-6.jpg\/v4-728px-4301351-6.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 after メソッドを使用して日付を比較します。 次のコードは、true の場合と false の場合の両方を示しています。 date2 が date1 より後の場合、after は true を返します。それ以外の場合は false を返します。 System.out.print ( date2.after ( date1 ) ) ; // 出力 は true
System.out.print ( date1.after ( date2 ) ) ; // 出力 は false
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/e\/ed\/4301351-7.jpg\/v4-460px-4301351-7.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/e\/ed\/4301351-7.jpg\/v4-728px-4301351-7.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 4日付を比較するには、equals メソッドを使用します。 次のコードは、true の場合と false の場合の両方を示しています。日付が等しい場合、equals は true を返します。それ以外の場合は false を返します。 System.out.print ( date1.equals ( date3 ) ) ; // 出力 は true
System.out.print ( date1.equals ( date2 ) ) ; // 出力 は false
広告する 方法3方法 3/4:カレンダークラスの使用 {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/6\/6f\/4301351-8.jpg\/v4-460px-4301351-8.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/6\/6f\/4301351-8.jpg\/v4-728px-4301351-8.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1カレンダーを使用します。 Calendar クラスには、上記の date クラスのメソッドと同じように動作する compareTo、equals、after、before メソッドもあります。したがって、日付情報が Calendar クラスに保存されている場合は、比較を実行するために日付を抽出する必要はありません。 [3] {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/5\/5c\/4301351-9.jpg\/v4-460px-4301351-9.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/5\/5c\/4301351-9.jpg\/v4-728px-4301351-9.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2Calendar インスタンスを作成します。 Calendar メソッドを使用するには、複数の Calendar インスタンスが必要です。幸いなことに、すでに作成された Date インスタンスから時刻を取得できます。 Calendar cal1 = Calendar . getInstance (); // cal1 を宣言する
Calendar cal2 = Calendar . getInstance (); // cal2 を宣言する
Calendar cal3 = Calendar . getInstance (); // cal3 を宣言する
cal1 . setTime ( date1 ); //日付をcal1に適用する
cal2.setTime ( date2 ) ;
cal3.setTime ( date3 ) ;
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/8\/8d\/4301351-10.jpg\/v4-460px-4301351-10.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/8\/8d\/4301351-10.jpg\/v4-728px-4301351-10.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 before を使用して、cal1 と cal2 を比較します。 次のコードは、cal1 が cal2 の前に来るため、true を出力するはずです。 System.out.print ( cal1.before ( cal2 ) ) ; // true を 出力 します
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/2\/29\/4301351-11.jpg\/v4-460px-4301351-11.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/2\/29\/4301351-11.jpg\/v4-728px-4301351-11.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 4 after を使用して、cal1 と cal2 を比較します。 次のコードは、cal1 が cal2 の前に来るため、false を出力するはずです。 System.out.print ( cal1.after ( cal2 ) ) ; // 出力 は false
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/f\/f4\/4301351-12.jpg\/v4-460px-4301351-12.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/f\/f4\/4301351-12.jpg\/v4-728px-4301351-12.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 5等号を使用して cal1 と cal2 を比較します。 次のコードは、true の場合と false の場合の両方の例を示します。条件は比較されるカレンダーインスタンスによって異なります。コードは「true」を出力し、次の行で「false」を出力する必要があります。 System.out.println ( cal1.equals ( cal3 ) ) ; // 出力 true : cal1 == cal3
System.out.print ( cal1.equals ( cal2 ) ) ; // 出力 false : cal1 != cal2
広告する 方法 4方法 4/4: getTimeの使用 {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/2\/24\/4301351-13.jpg\/v4-460px-4301351-13.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/2\/24\/4301351-13.jpg\/v4-728px-4301351-13.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1getTime を使用します。 前述のいずれかの方法の方が読みやすく、好ましいと思われますが、ある時点で 2 つの日付を直接比較することも可能です。これは 2 つのプリミティブ データ型の比較なので、比較には「<」、「>」、および「==」を使用できます。 {"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/c\/c3\/4301351-14.jpg\/v4-460px-4301351-14.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/c\/c3\/4301351-14.jpg\/v4-728px-4301351-14.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 long 型の時間オブジェクトを作成します。 日付を比較する前に、先ほど作成した Date オブジェクトのデータを使用して長整数を作成する必要があります。幸いなことに、getTime() メソッドがほとんどの作業を自動的に実行してくれます。 long time1 = getTime ( date1 ); //date1を使用して元のデータtime1を宣言します
long time2 = getTime ( date2 ); //date2を使用して元のデータtime2を宣言します
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/6\/62\/4301351-15.jpg\/v4-460px-4301351-15.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/6\/62\/4301351-15.jpg\/v4-728px-4301351-15.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 は比較よりもパフォーマンスが低くなります。 2 つの整数値を比較するには、小なり記号 (<) を使用します。 time1 は time 2 より小さいため、最初のメッセージが出力されるはずです。構文を正しくするために、else ステートメントが使用されます。 ( 時間1 < 時間2 ) の場合
System.out.println ( "date1 is before date2" ) ; // time1 < time2 なのでこの文が 出力され ます
}
それ以外 {
システム .out.println ( "date1は date2より前ではありません " ) ;
}
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/3\/3a\/4301351-16.jpg\/v4-460px-4301351-16.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/3\/3a\/4301351-16.jpg\/v4-728px-4301351-16.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 4より大きい比較を実行します。 2 つの整数値を比較するには、大なり記号 (>) を使用します。 time1 は time 2 より大きいため、最初のメッセージが出力されるはずです。構文を正しくするために、else ステートメントが使用されます。もし ( 時間2 > 時間1 ) {
System.out.println ( "date2はdate1より後です" ) ; // time2 > time1なのでこの文が 出力され ます
}
それ以外 {
システム .out.println ( "date2はdate1より後ではありませ ん " ) ;
}
{"smallUrl":"https:\/\/www.wikihow.com\/images_en\/thumb\/d\/dd\/4301351-17.jpg\/v4-460px-4301351-17.jpg","bigUrl":"https:\/\/www.wikihow.com\/images\/thumb\/d\/dd\/4301351-17.jpg\/v4-728px-4301351-17.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 5 は等しい比較を実行します。 等号 (==) を使用して、2 つの整数値が等しいかどうかを確認します。 time1 は time3 と等しいので、最初のメッセージが出力されるはずです。プログラムが else ステートメントを実行する場合、2 つの時間が等しくないことを意味します。 [4] ( 時間1 == 時間2 ) の場合 {
System . out . println ( "日付は同じです" );
}
それ以外 {
System.out.println ( "日付が等しくありません" ) ; // time1 != time2 なのでこの文を出力 し ます
}
広告する