자바에서 날짜 비교

작가: Roger Morrison
창조 날짜: 24 구월 2021
업데이트 날짜: 1 칠월 2024
Anonim
Java 8에서 두 날짜의 차이점 찾기
동영상: Java 8에서 두 날짜의 차이점 찾기

콘텐츠

Java에서 날짜를 비교하는 방법에는 여러 가지가 있습니다. 내부적으로 날짜는 (긴) 시점 (1970 년 1 월 1 일 이후 경과 한 밀리 초 수)으로 표시됩니다. Java에서 date는 날짜를 비교하기위한 여러 메소드가 포함되어 있음을 의미하는 Date 객체입니다. 두 날짜를 비교하는 모든 방법은 기본적으로 두 날짜의 경과 시간을 비교합니다.

단계로

4 가지 방법 중 1 : "compareTo"명령 사용

  1. compareTo를 사용하십시오. Date는 ComparableDate>를 구현하므로 compareTo 메서드를 사용하여 두 날짜를 서로 직접 비교할 수 있습니다. 날짜가 동일한 시점을 나타내는 경우 메서드는 0을 반환합니다. 비교되는 날짜가 date 인수 이전이면 음수 값이 반환됩니다. 비교되는 날짜가 date 인수보다 늦은 날짜이면 양수 값이 반환됩니다. 날짜가 같으면 0이 반환됩니다.
  2. Date 개체를 만듭니다. 비교를 시작하기 전에 각 날짜 개체를 만들어야합니다. 이를 수행하는 한 가지 방법은 SimpleDateFormat 클래스를 적용하는 것입니다. 이를 통해 날짜 개체에 날짜를 쉽게 입력 할 수 있습니다.

      SimpleDateFormat sdf = 새로운 SimpleDateFormat ( "yyyy-MM-dd"); // 새 날짜 개체에서 값을 선언합니다.날짜를 만들 때 동일한 날짜 형식을 사용합니다. Date date1 = sdf.parse ( "1995-02-23"); // date1은 1995 년 2 월 23 일입니다. Date date2 = sdf.parse ( "2001-10-31"); // date2는 2001 년 10 월 31 일입니다. Date 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 메소드를 사용하여 날짜를 서로 비교할 수 있습니다. 두 날짜가 같은 시간을 나타내는 경우 equals 메서드는 "true"를 반환합니다. 예제에서는 compareTo 메서드를 통해 이전에 만든 날짜를 사용합니다.
  2. before 방법을 사용하여 비교하십시오. 아래 코드는 참과 거짓의 경우를 보여줍니다. date1이 date2보다 이전이면 결과는 참입니다. 그렇지 않은 경우 before는 false를 반환합니다.

      System.out.print (date1.before (date2)); // true를 인쇄합니다. System.out.print (date2.before (date2)); // 거짓 인쇄

  3. 이것을 after 방법과 비교하십시오. 아래 코드는 참과 거짓의 경우를 보여줍니다. date2가 date1 이후이면 after는 true를 반환합니다. 그렇지 않은 경우 after는 false를 반환합니다.

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

  4. equals 방법을 사용하여 비교합니다. 아래 코드는 참과 거짓의 경우를 보여줍니다. 날짜가 같으면 같음은 true를 반환합니다. 그렇지 않으면 같음은 거짓을 반환합니다.

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

4 가지 방법 중 3 : Calendar 클래스 사용

  1. Calendar 클래스를 사용하십시오. Calendar 클래스에는 날짜 클래스에 대해 위에서 설명한 것과 동일한 방식으로 작동하는 compareTo, equals, after 및 before 메서드도 있습니다. 따라서 날짜 데이터가 달력에 보관되어 있으면 두 날짜를 비교하기 위해 "날짜"를 추출 할 필요가 없습니다.
  2. Calendar 인스턴스를 만듭니다. Calendar 메서드를 사용하려면 Calendar 인스턴스가 필요합니다. 다행히도 Date 인스턴스에서 생성 된 시간을 사용할 수 있습니다.

      달력 cal1 = Calendar.getInstance (); // cal1을 선언합니다. Calendar cal2 = Calendar.getInstance (); // cal2를 선언합니다. Calendar cal3 = Calendar.getInstance (); // cal3 선언 cal1.setTime (date1); // cal1에 날짜를 적용합니다. cal2.setTime (date2); cal3.setTime (날짜 3);

  3. before를 사용하여 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)); // 거짓 인쇄

  5. 같음을 사용하여 cal1과 cal2를 비교합니다. 아래 코드는 참과 거짓의 예를 보여줍니다. 조건은 비교되는 캘린더 인스턴스에 따라 다릅니다. 아래 코드는 다음 줄에서 "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. "장시간"개체를 만듭니다. 날짜를 비교하려면 먼저 이전에 만든 Date 개체의 데이터에서 긴 정수를 만들어야합니다. 다행히도 getTime () 메서드가 대부분의 작업을 수행합니다.

      긴 시간 1 = getTime (날짜 1); // date1의 원시 time1을 선언합니다. long time2 = getTime (date2); // date2의 원시 time2를 선언합니다.

  3. "보다 작음"방정식을 사용하십시오. 이 두 정수 값을 비교하려면 "보다 작음"기호 ()를 사용하십시오. time1은 time2보다 작기 때문에 첫 번째 메시지가 화면에 인쇄되어야합니다. 올바른 구문을 위해 else 문이 포함되어 있습니다.

      if (time1 time2) {System.out.println ( "date1이 date2보다 이전 임"); // time1 time으로 인쇄합니다 .2} else {System.out.println ( "date1은 date2보다 늦거나 같음"); }

  4. "보다 큼"비교를 수행하십시오. 이 두 정수를 비교하려면 "보다 큼"기호 (>)를 ​​사용하십시오. time1이 time2보다 크므로 첫 번째 메시지가 화면에 인쇄됩니다. 올바른 구문을 위해 else 문이 포함되어 있습니다.

      if (time2> time1) {System.out.println ( "date2는 date1 이후에옵니다"); // time2> time1} 때문에 인쇄 else {System.out.println ( "date2는 date1보다 빠르거나 같음"); }

  5. "같음"비교를 수행하십시오. 이 두 정수를 비교하려면 기호 (==)를 사용하십시오. time1이 time3과 같으므로 첫 번째 메시지가 인쇄되어야합니다. 프로그램이 else 문에 도달하면 시간이 동일하지 않음을 의미합니다.

      if (time1 == time2) {System.out.println ( "날짜가 같음"); } else {System.out.println ( "날짜가 같지 않습니다"); // time1! = time이므로 인쇄합니다 .2}