> Java > java지도 시간 > Java에서 날짜와 시간을 비교하는 방법은 무엇입니까? 4가지 방법 소개

Java에서 날짜와 시간을 비교하는 방법은 무엇입니까? 4가지 방법 소개

青灯夜游
풀어 주다: 2020-07-27 17:32:15
앞으로
4688명이 탐색했습니다.

Java에서 날짜와 시간을 비교하는 방법은 무엇입니까? 4가지 방법 소개

1. Date.compareTo()

java.util.Date는 Java에서 두 날짜를 비교하는 전통적인 메서드인 CompareTo()를 제공합니다. java.util.Date提供了在Java中比较两个日期的经典方法compareTo()。

1、如果两个日期相等,则返回值为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()

一种语义上比较友好的方法来比较两个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()

使用java.util.Calendar比较两个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。以下示例以比较两个java.time.LocalDate

1. 두 날짜가 같으면 반환 값은 0입니다.

2. 날짜가 날짜 매개변수 뒤에 오면 반환 값은 0보다 큽니다.

3. 날짜가 날짜 매개변수보다 앞에 있으면 반환 값은 0보다 작습니다.

@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 之前
로그인 후 복사
🎜🎜🎜2. Date.before(), Date.after() 및 Date.equals()🎜🎜🎜🎜두 Java .util.Date를 비교하는 의미상 친숙한 방법입니다. 🎜rrreee🎜출력 결과🎜rrreee🎜🎜🎜3. Calender.before(), Calender.after() 및 Calender.equals()🎜🎜🎜🎜java.util.Calendar를 사용하여 두 날짜 날짜 비교 🎜rrreee🎜출력 결과:🎜rrreee🎜🎜🎜4. Java 8 날짜 비교 방법🎜🎜🎜🎜Java 8에서는 새로운 isBefore(), isAfter(), isEqual( ) 및 CompareTo()를 사용하여 LocalDate를 비교할 수 있습니다. LocalTime 및 LocalDateTime. 다음 예에서는 두 개의 java.time.LocalDate🎜rrreee🎜출력 결과🎜rrreee🎜권장 튜토리얼: "🎜java tutorial🎜"🎜을 비교합니다.

위 내용은 Java에서 날짜와 시간을 비교하는 방법은 무엇입니까? 4가지 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿