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.Calendar
2 つの 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 サイトの他の関連記事を参照してください。