
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