반응형

Calendar 클래스 - 예제 2, 3

  • -set()으로 날짜와 시간지정하기

set()메서드에는 오버로딩된 여러가지 버전의 set()메서드가 존재한다.
어떠한 특정 필드값만 설정할 수도 있고,
년, 월, 일을 설정할 수 도 있고,
시분초 까지도 설정할 수 있다.

 

  • 날짜 지정하는 방법. 월(MONTH)이 0부터 시작한다는 점을 주의하자.

set()메서드를 사용할 때 한가지 주의해야 할 점은, 날짜를 지정할 때, 월이 0부터 시작한다는 점을 주의해야 한다는 점이다.

set()메서드를 사용하는 방법은,
처음에 Calendar객체를 생성하고, 그다음, set메서드로 date1.set(2017, 7, 15);를 해주면,
2017년 8월 15일로 지정해준 것이다. 7월이 아니다!!

아니면, 맨 위에서 첫번째 메서드를 이용해서 하나씩 지정해줄 수도 있다.
 YEAR는 2017로,
MONTH는 7로 (8월)
DATE는 15로 설정할 수 있다.

월(MONTH)가 0부터 시작하는 이유는, 배열을 이용하기 때문이다.

월을 출력할 때, 외국에서는 JAN, FEB이런식으로 출력하는데,
배열 {"JAN", "FEB"...}이런식으로 되어있는데, 이것이 배열에 들어있다보니까, 0부터 시작한다.

 

  • 시간 지정하는 방법

시분초가 세트로 되어있는 것은 없다.
따라서, 시분초를 따로따로 설정해 줘야 한다.

calendar 객체를 생성해주고,
set() 메서드를 이용해서,
time1.set(Calendar.HOUR_OF_DAY, 10); 를 이용해서 10시를 설정해주고,
time1.set(Calendar.MINUTE, 20);을 이용해서 20분을 설정해주고,
time1.set(Calendar.SECOND, 30)을 이용해서 30초를 설정해준다.

 

[Ex10_2]

 

[Ex10_3]

 

 

  • clear()는 Calendar객체의 모든 필드를 초기화

clear()라는 메서드는 Calendar객체의 모든 필드를 초기화 한다.

처음에 처음에 Calendar객체를 만들면, 현재 시간으로 세팅된다.
예를 들어서, Calendar객체를 생성 했다고하면,
현재 시간이 객체에 저장되어있는 상태가 된다.

그런데, 해당 객체에 clear()를 호출하게 되면,
모든 필드가 초기화 되어, 1970년 1월 1일 00시00분00초 로 바뀐다. (EPOCH Time)
즉, clear()메서드를 호출하면, EPOCH Time으로 세팅이 된다.

위의 코드 System.out.println(new Date(dt.getTimeInMillis())); 에서
new Date를 사용한 이유는,
getTimeInMillis()로 출력을 하면, 천분의일초단위로 나오기 떄문에,
그것을 좀더 보기 좋게 하려고 Date 클래스를 사용한 것이다.

 

  • clear(int field)는 Calendar객체의 특정 필드를 초기화

 

clear(int field) 즉, 매개변수로 필드를 지정해주면, Calendar객체의 특정 필드를 초기화 해줄 수 있다.

초를 초기화하면 0초,
분을 초기화하면, 0초 이런식인 것이다.

원래, 당장 현재시간으로 작업을 할 것이 아니면, Calendar객체를 생성하고나면, 꼭 clear()를 해주고,
그리고나서 set()메서드를 사용해야 한다. 그래야 계산이 정확해진다.

 

[Exercise10_5]

 

반응형

'JAVA' 카테고리의 다른 글

형식화 클래스 DecimalFormat  (0) 2022.04.26
Calendar 예제(2)  (0) 2022.04.26
날짜와 시간, Calendar 클래스  (0) 2022.04.20
오토박싱 & 언박싱, 문자열과 숫자변환  (0) 2022.04.19
래퍼 클래스, Number 클래스  (0) 2022.04.18