Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで文字列形式の2つの日付を比較するにはどうすればよいですか?


java.text.SimpleDateFormat classは、文字列を日付に、日付を文字列にフォーマットおよび解析するために使用されます。

  • このクラスのコンストラクターの1つは、目的の日付形式を表すString値を受け入れ、SimpleDateFormatオブジェクトを作成します。
  • 文字列をDateオブジェクトとして解析/変換するには目的のフォーマット文字列を渡して、このクラスをインスタンス化します。
  • parse()メソッドを使用して日付文字列を解析します。
  • util.Date クラスは特定の瞬間を表しますこのクラスは、2つの日付を比較するために、before()、after()、equals()などのさまざまなメソッドを提供します

文字列から日付オブジェクトを作成したら、以下に示すように、これらの方法のいずれかを使用してそれらを比較できます-

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo {
   public static void main(String args[])throws ParseException {  
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM");      
      String dateStr1 = "2007-11-25";
      String dateStr2 = "1999-9-12";
      //Parsing the given String to Date object
      Date date1 = formatter.parse(dateStr1);  
      Date date2 = formatter.parse(dateStr2);      
      Boolean bool1 = date1.after(date2);  
      Boolean bool2 = date1.before(date2);
      Boolean bool3 = date1.equals(date2);
      if(bool1){
         System.out.println(dateStr1+" is after "+dateStr2);
      }else if(bool2){
         System.out.println(dateStr1+" is before "+dateStr2);
      }else if(bool3){
          System.out.println(dateStr1+" is equals to "+dateStr2);
      }
   }
}

出力

2007-11-25 is after 1999-9-12

LocalDateクラスのParse()メソッド

LocalDateクラスのparse()メソッドは、日付を表すString値を受け入れ、LocalDateオブジェクトを返します。

import java.time.LocalDate;
public class Test {
   public static void main(String args[]){
      String dateStr1 = "2007-11-25";
      String dateStr2 = "1999-9-12";
      LocalDate date1 = LocalDate.parse(dateStr1);
      LocalDate date2 = LocalDate.parse(dateStr1);
      Boolean bool1 = date1.isAfter(date2);  
      Boolean bool2 = date1.isBefore(date2);
      Boolean bool3 = date1.isEqual(date2);
      if(bool1){
          System.out.println(dateStr1+" is after "+dateStr2);
       }else if(bool2){
          System.out.println(dateStr1+" is before "+dateStr2);
       }else if(bool3){
          System.out.println(dateStr1+" is equal to "+dateStr2);
       }
    }
}

出力

2007-11-25 is equal to 1999-9-12


  1. Java OpenCVライブラリを使用して2つの画像を比較するにはどうすればよいですか?

    2つの画像を比較するには- Image.IO.read()を使用して両方を読み取ります メソッド。 両方の高さと幅を取得して、それらが等しいことを確認します。 ピクセル値を取得し、両方の画像のRGB値を取得します。 これら2つの画像のRGB値の差の合計を取得します。 次の式を使用して差のパーセンテージを計算します- Average = difference/weight*height*3; Percentage = (Average/255)*100; 例 import java.awt.Color; import java.awt.image.Buff

  2. Javaで文字列を比較する方法

    文字列が等しいかどうかを比較するには、Stringオブジェクトのequalsを使用する必要があります またはequalsIgnoreCase メソッド。 ==を使用すべきでない理由もわかります 文字列を比較する演算子。 文字列とequals()メソッドの比較 Javaで2つの文字列を比較する必要があり、文字列の大文字と小文字も気にする必要がある場合は、equals()を使用できます。 メソッド。 たとえば、次のスニペットは、文字列の2つのインスタンスが大文字小文字を含むすべての文字で等しいかどうかを判断します。 public class CompareTwoStrings { p