Javaで日付を比較する

著者: Roger Morrison
作成日: 24 9月 2021
更新日: 1 J 2024
Anonim
【Java入門#24】Java API
ビデオ: 【Java入門#24】Java API

コンテンツ

Javaで日付を比較する方法はいくつかあります。内部的には、日付は(長い)時点(1970年1月1日から経過したミリ秒数)として表されます。Javaでは、dateはDateオブジェクトであり、日付を比較するための複数のメソッドが含まれていることを意味します。 2つの日付を比較する方法は、基本的に両方の日付の経過時間を比較します。

ステップに

方法1/4:「compareTo」コマンドの使用

  1. compareToを使用します。 DateはComparableDate>を実装しているため、compareToメソッドを使用して2つの日付を直接比較できます。日付が同じ時点を示している場合、メソッドはゼロを返します。比較される日付がdate引数より前の場合、負の値が返されます。比較される日付がdate引数の日付より後の日付である場合、正の値が返されます。日付が同じ場合、ゼロが返されます。
  2. Dateオブジェクトを作成します。 比較を開始する前に、各日付オブジェクトを作成する必要があります。これを行う1つの方法は、SimpleDateFormatクラスを適用することです。これにより、Dateオブジェクトに日付を簡単に入力できます。

      SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd"); //新しい日付オブジェクトで値を宣言するため。日付を作成するときは、同じ日付形式を使用してくださいDate date1 = sdf.parse( "1995-02-23"); // date1は1995年2月23日ですdatedate2 = sdf.parse( "2001-10-31"); // date2は2001年10月31日です日付date3 = sdf.parse( "1995-02-23"); // date3は1995年2月23日です

  3. 日付オブジェクトを比較します。 以下に、それぞれのケースを示します-より小さい、等しい、より大きい。

      date1.compareTo(date2); // date1 date2、0未満date2.compareTo(date1); // date2> date1、0より大きい値を返しますdate1.compareTo(date3); // date1 = date3、0を返します

方法2/4:「等しい、後、前」の方法を使用する

  1. 前後に等しいを使用します。 日付は、equals、after、beforeメソッドを使用して相互に比較できます。 2つの日付が同じ時刻を示している場合、equalsメソッドは「true」を返します。例では、compareToメソッドを介して以前に作成された日付を使用しています。
  2. beforeメソッドを使用して比較します。 以下のコードは、trueとfalseの場合を示しています。 date1がdate2より前の場合、結果はtrueです。そうでない場合、beforeはfalseを返します。

      System.out.print(date1.before(date2)); //真のSystem.out.print(date2.before(date2));を出力します// falseを出力します

  3. これをafterメソッドと比較してください。 以下のコードは、trueとfalseの場合を示しています。 date2がdate1より後の場合、afterはtrueを返します。そうでない場合、afterはfalseを返します。

      System.out.print(date2.after(date1)); // trueを出力System.out.print(date1.after(date2)); // falseを出力

  4. equalsメソッドを使用して比較します。 以下のコードは、trueとfalseの場合を示しています。日付が同じ場合、equalsはtrueを返します。そうでない場合、equalsはfalseを返します。

      System.out.print(date1.equals(date3)); // trueを出力System.out.print(date1.equals(date2)); // falseを出力

方法3/4:Calendarクラスの使用

  1. Calendarクラスを使用します。 Calendarクラスには、compareTo、equals、after、beforeメソッドもあります。これらのメソッドは、上記のdateクラスと同じように機能します。したがって、日付データがカレンダーに保持されている場合、2つの日付を比較するためだけに、「日付」を抽出する必要はありません。
  2. カレンダーのインスタンスを作成します。 Calendarメソッドを使用するには、いくつかのCalendarインスタンスが必要です。幸い、Dateインスタンスによって生成された時刻を使用できます。

      カレンダーcal1 = Calendar.getInstance(); // cal1を宣言しますCalendarcal2 = Calendar.getInstance(); // cal2を宣言しますCalendarcal3 = Calendar.getInstance(); // cal3を宣言しますcal1.setTime(date1); //日付をcal1に適用しますcal2.setTime(date2); cal3.setTime(date3);

  3. 以前を使用してcal1とcal2を比較します。 cal1はcal2よりも前であるため、以下のコードはtrueを返します。

      System.out.print(cal1.before(cal2)); // trueを出力します

  4. afterを使用してcal1とcal2を比較します。 cal1はcal2よりも前であるため、以下のコードはfalseを返します。

      System.out.print(cal1.after(cal2)); // falseを出力します

  5. equalsを使用して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の方法:「getTime」メソッドの使用

  1. getTimeを使用します。 2つの時点を直接比較することも可能ですが、前述のアプローチのいずれかにより、より読みやすい結果が得られる可能性が高いため、推奨されます。これは2つのプリミティブデータ型の比較であるため、 ""、 ">"および "=="を使用して実行できます。
  2. 「長い」時間オブジェクトを作成します。 日付を比較する前に、以前に作成したDateオブジェクトのデータから長整数を作成する必要があります。幸い、getTime()メソッドがほとんどの作業を行います。

      long time1 = getTime(date1); // date1のプリミティブtime1を宣言しますlongtime2 = getTime(date2); // date2のプリミティブtime2を宣言します

  3. 「未満」の式を使用します。 「より小さい」記号()を使用して、これら2つの整数値を比較します。 time1はtime2より小さいため、最初のメッセージを画面に出力する必要があります。正しい構文のためにelseステートメントが含まれています。

      if(time1 time2){System.out.println( "date1はdate2より前です"); // time1time2のために出力} else {System.out.println( "date1はdate2以降です"); }

  4. 「より大きい」比較を行います。 これらの2つの整数を比較するには、「大なり記号」(>)を使用します。 time1はtime2より大きいため、最初のメッセージが画面に出力されます。正しい構文のためにelseステートメントが含まれています。

      if(time2> time1){System.out.println( "date2はdate1"の後に来る); // time2> time1} else {System.out.println( "date2がdate1"以上であるために出力); }

  5. 「等しい」比較を行います。 記号(==)を使用して、これら2つの整数を比較します。 time1はtime3と等しいため、最初のメッセージを出力する必要があります。プログラムがelseステートメントに到達した場合、それは時間が同じではないことを意味します。

      if(time1 == time2){System.out.println( "日付が等しい"); } else {System.out.println( "日付が等しくありません"); // time1!= time2}であるため印刷