Java Language
달력 및 그 서브 클래스
수색…
비고
Java 8에서는, Calendar
와 그 서브 클래스가 java.time 패키지 및 그 서브 패키지에 의해 옮겨 놓을 수있었습니다 . 기존 API에 Calendar가 필요하지 않은 한 선호해야합니다.
달력 객체 만들기
Calendar
객체는 getInstance()
를 사용하거나 GregorianCalendar
생성자를 사용하여 만들 수 있습니다.
그것은에 달 통지하는 것이 중요 Calendar
1 월로 표현되는 것을 의미하는 0부터이다 int
항상 더 나은 코드를 제공 사용하려면 값을 0 Calendar
과 같은 상수, Calendar.JANUARY
오해를 피하기 위해.
Calendar calendar = Calendar.getInstance();
Calendar gregorianCalendar = new GregorianCalendar();
Calendar gregorianCalendarAtSpecificDay = new GregorianCalendar(2016, Calendar.JANUARY, 1);
Calendar gregorianCalendarAtSpecificDayAndTime = new GregorianCalendar(2016, Calendar.JANUARY, 1, 6, 55, 10);
주 : 항상 달의 정수를 사용합니다. 수치 표현은 오해의 소지가 있습니다 . 예를 들어 Calendar.JANUARY
의 값은 0
달력 필드 증가 / 감소
add()
및 roll()
을 사용하여 Calendar
필드를 늘리거나 줄일 수 있습니다.
Calendar calendar = new GregorianCalendar(2016, Calendar.MARCH, 31); // 31 March 2016
add()
메서드는 모든 필드에 영향을주고 달력에서 실제 날짜를 더하거나 뺄 때 효과적입니다.
calendar.add(Calendar.MONTH, -6);
위의 작업으로 인해 캘린더에서 6 개월이 삭제되어 2015 년 9 월 30 일로 되돌아갑니다.
다른 필드에 영향을주지 않고 특정 필드를 변경하려면 roll()
.
calendar.roll(Calendar.MONTH, -6);
위의 작업은 현재 달 에서 6 개월을 제거하므로 월은 9 월으로 식별됩니다. 다른 필드는 조정되지 않았습니다. 이 작업으로 인해 올해는 변경되지 않았습니다.
오전 / 오후 찾기
Calendar 클래스를 사용하면 AM 또는 PM을 쉽게 찾을 수 있습니다.
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
if (cal.get(Calendar.AM_PM) == Calendar.PM)
System.out.println("It is PM");
캘린더 빼기
2 개의 Calendar
의 차이를 취득하려면, getTimeInMillis()
메소드를 사용 getTimeInMillis()
.
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c2.set(Calendar.DATE, c2.get(Calendar.DATE) + 1);
System.out.println(c2.getTimeInMillis() - c1.getTimeInMillis()); //outputs 86400000 (24 * 60 * 60 * 1000)