Javaで日付と時刻を比較するにはどうすればよいですか? 4つの方法を紹介

青灯夜游
リリース: 2020-07-27 17:32:15
転載
4657 人が閲覧しました

Javaで日付と時刻を比較するにはどうすればよいですか? 4つの方法を紹介

1. Date.compareTo()

java.util.Date は、 Java で 2 つの日付を比較する古典的な方法は、compareTo() です。

1. 2 つの日付が等しい場合、戻り値は 0 です。

2. Date が date パラメーターの後である場合、戻り値は 0 より大きくなります。

3. Date が date パラメーターの前にある場合、戻り値は 0 未満です。

@Testvoid testDateCompare() throws ParseException {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date date1 = sdf.parse("2009-12-31");
  Date date2 = sdf.parse("2019-01-31");

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));  if (date1.compareTo(date2) > 0) {
    System.out.println("Date1 时间在 Date2 之后");
  } else if (date1.compareTo(date2) < 0) {
    System.out.println("Date1 时间在 Date2 之前");
  } else if (date1.compareTo(date2) == 0) {
    System.out.println("Date1 时间与 Date2 相等");
  } else {
    System.out.println("程序怎么会运行到这里?正常应该不会");
  }
}
ログイン後にコピー

出力結果:

date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前
ログイン後にコピー
ログイン後にコピー

2. Date.before()、Date.after()、および Date.equals()

2 つの java.util.Date

@Testvoid testDateCompare2() throws ParseException {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date date1 = sdf.parse("2009-12-31");
  Date date2 = sdf.parse("2019-01-31");

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));  if (date1.after(date2)) {
    System.out.println("Date1 时间在 Date2 之后");
  }  if (date1.before(date2)) {
    System.out.println("Date1 时间在 Date2 之前");
  }  if (date1.equals(date2)) {
    System.out.println("Date1 时间与 Date2 相等");
  }
}
ログイン後にコピー

出力結果

date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前
ログイン後にコピー
ログイン後にコピー

3 .Calender.before( )、Calender.after()、および Calender.equals()

Usingjava.util.Calendar2 つの Date 日付を比較

@Testvoid testDateCompare3() throws ParseException {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date date1 = sdf.parse("2009-12-31");
  Date date2 = sdf.parse("2019-01-31");

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));

  Calendar cal1 = Calendar.getInstance();
  Calendar cal2 = Calendar.getInstance();
  cal1.setTime(date1);
  cal2.setTime(date2);  if (cal1.after(cal2)) {
    System.out.println("Date1 时间在 Date2 之后");
  }  if (cal1.before(cal2)) {
    System.out.println("Date1 时间在 Date2 之前");
  }  if (cal1.equals(cal2)) {
    System.out.println("Date1 时间与 Date2 相等");
  }
}
ログイン後にコピー

出力結果:

date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
ログイン後にコピー

4. Java 8 の日付比較メソッド

Java 8 では、新しい isBefore( )、isAfter()、 isEqual() および CompareTo() は、LocalDate、LocalTime、および LocalDateTime を比較します。次の例では、2 つの java.time.LocalDate

@Testvoid testDateCompare4() throws ParseException {
  DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  LocalDate date1 = LocalDate.of(2009, 12, 31);
  LocalDate date2 = LocalDate.of(2019, 1, 31);

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));

  System.out.println("Is...");  if (date1.isAfter(date2)) {
    System.out.println("Date1 时间在 Date2 之后");
  }  if (date1.isBefore(date2)) {
    System.out.println("Date1 时间在 Date2 之前");
  }  if (date1.isEqual(date2)) {
    System.out.println("Date1 时间与 Date2 相等");
  }
}
ログイン後にコピー

出力結果を比較します

date1 : 2009-12-31date2 : 2019-01-31Is...Date1 时间在 Date2 之前
ログイン後にコピー

推奨チュートリアル: "javatutorial"

以上がJavaで日付と時刻を比較するにはどうすればよいですか? 4つの方法を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート