개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.31 16:04

IntlCalendar::equals 메서드 사용 시 예외

목록
  • 웹표준수호자 2일 전 2025.03.31 16:04
  • 1
    1
IntlCalendar 클래스의 equals 메서드는 두 개의 IntlCalendar 객체가 같은 날짜와 시간을 나타내는지 확인하는 데 사용됩니다.

IntlCalendar calendar1 = new IntlCalendar();
IntlCalendar calendar2 = new IntlCalendar();

(calendar1.get(Calendar.YEAR), calendar1.get(Calendar.MONTH), calendar1.get(Calendar.DAY_OF_MONTH),
calendar1.get(Calendar.HOUR_OF_DAY), calendar1.get(Calendar.MINUTE), calendar1.get(Calendar.SECOND))
이러한 방식으로 두 객체의 날짜와 시간을 설정한 후 equals 메서드를 호출하여 두 객체가 같은 날짜와 시간을 나타내는지 확인할 수 있습니다.

IntlCalendar calendar1 = new IntlCalendar();
IntlCalendar calendar2 = new IntlCalendar();

(calendar1.get(Calendar.YEAR), calendar1.get(Calendar.MONTH), calendar1.get(Calendar.DAY_OF_MONTH),
calendar1.get(Calendar.HOUR_OF_DAY), calendar1.get(Calendar.MINUTE), calendar1.get(Calendar.SECOND))

(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH),
calendar2.get(Calendar.HOUR_OF_DAY), calendar2.get(Calendar.MINUTE), calendar2.get(Calendar.SECOND))

calendar1.equals(calendar2);

위의 코드를 실행하면 true가 반환되는지 false가 반환되는지 확인하고 싶습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    IntlCalendar 클래스의 equals 메서드는 두 개의 IntlCalendar 객체가 같은 날짜와 시간을 나타내는지 확인하는 데 사용됩니다.

    IntlCalendar calendar1 = new IntlCalendar();
    IntlCalendar calendar2 = new IntlCalendar();

    calendar1.set(Calendar.YEAR, 2022);
    calendar1.set(Calendar.MONTH, Calendar.JANUARY);
    calendar1.set(Calendar.DAY_OF_MONTH, 1);
    calendar1.set(Calendar.HOUR_OF_DAY, 12);
    calendar1.set(Calendar.MINUTE, 0);
    calendar1.set(Calendar.SECOND, 0);

    calendar2.set(Calendar.YEAR, 2022);
    calendar2.set(Calendar.MONTH, Calendar.JANUARY);
    calendar2.set(Calendar.DAY_OF_MONTH, 1);
    calendar2.set(Calendar.HOUR_OF_DAY, 12);
    calendar2.set(Calendar.MINUTE, 0);
    calendar2.set(Calendar.SECOND, 0);

    System.out.println(calendar1.equals(calendar2)); // true

    하지만, IntlCalendar 객체는 기본적으로 UTC 시간을 사용하므로, 두 객체가 같은 날짜와 시간을 나타내더라도, 시간대가 다르면 equals 메서드는 false를 반환할 수 있습니다.

    IntlCalendar calendar1 = new IntlCalendar();
    IntlCalendar calendar2 = new IntlCalendar();

    calendar1.set(Calendar.YEAR, 2022);
    calendar1.set(Calendar.MONTH, Calendar.JANUARY);
    calendar1.set(Calendar.DAY_OF_MONTH, 1);
    calendar1.set(Calendar.HOUR_OF_DAY, 12);
    calendar1.set(Calendar.MINUTE, 0);
    calendar1.set(Calendar.SECOND, 0);
    calendar1.setTimeZone(TimeZone.getTimeZone("Asia/Seoul"));

    calendar2.set(Calendar.YEAR, 2022);
    calendar2.set(Calendar.MONTH, Calendar.JANUARY);
    calendar2.set(Calendar.DAY_OF_MONTH, 1);
    calendar2.set(Calendar.HOUR_OF_DAY, 12);
    calendar2.set(Calendar.MINUTE, 0);
    calendar2.set(Calendar.SECOND, 0);
    calendar2.setTimeZone(TimeZone.getTimeZone("UTC"));

    System.out.println(calendar1.equals(calendar2)); // false

    따라서, IntlCalendar 객체를 비교할 때는 시간대도 함께 고려해야 합니다.

    2025-03-31 16:05

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 8,447건 / 20 페이지

검색

게시물 검색