열심히 끝까지
34강 java.util 패키지2 본문
34-1 ) java.time 패키지
java.time 패키지?
: Java에서 날짜와 시간을 다루기 위한 패키지
[1] java.time 패키지의 하위 패키지
- JDK 1.8부터 추가된 패키지로서 기존의 Date와 Calendar 보완
[2] time 패키지의 시간과 날짜 클래스 종류
LocalDate 클래스 : 날짜 정보를 저장
- 날짜 정보를 저장하는 방법?
> 현재 날짜 지정 : now() 메서드
> 특정 날짜 지정 : of() 메서드
LocalDate ld = LocalDate.now()
LocalDate mld = LocalDate.of(int year, int month, int dayOfMonth);
LocalTime 클래스 : 시간 정보를 저장
- 시간 정보를 저장하는 방법?
> 현재 시간 지정 : now() 메서드
> 특정 시간 지정 : of() 메서드
LocalTime lt = LocalTime.now()
LocalTime mlt = LocalTime.of(int hour, int minute, int second, int nanoOfSecond);
<of메서드의 오버로딩>
of(int hour, int minute);
of(int hour, int minute, int second);
of(int hour, int minute, int second, int nanoOfSecond);
LocalDateTime 클래스 : LocalDate클래스와 LocalTime클래스를 결합한 클래스
- 날짜 정보와 시간 정보 모두 저장
> 현재 날짜와 시간 지정 : now() 메서드
> 특정 날짜와 시간 지정 : of() 메서드
LocalDateTime ldt = LocalDateTime.now()
LocalDateTime mldt
= LocalDateTime.of(int year, int month, int dayOfMonth,
int hour, int minute, int second, int nanoOfSecond);
ZoneDateTime 클래스 : ISO-8601 달력 시스템에서 정의하는
Time Zone에 따라 날짜와 시간 저장
> 형식 : 2016-01-08T12:56:09.017+09:00(Asia/Seoul)
- 협정 세계시(UTC)와 차이 나는 시간(존 오프셋)이 따로 저장
- ZoneDateTime 클래스는 now() 메서드 뒤에 ZoneId를 매개값으로 넘겨야 함
ZoneDateTimd zdt = ZoneDateTime.now(ZoneId.of("UTC"));
Instant 클래스 : 특정 시점의 타임 스탬프 객체
- 1970년 1월 1일부터 현재까지의 시간을 세는 객체
- Machine time 에 유리
Instant i = Instant.now();
[3] 클래스들의 정보 값 읽어오기
LocalDate/LocalTime 클래스
- Calendar 클래스와의 차이?
Calendar 클래스는 1월이 0으로 시작하나,
LocalDate는 1월을 1로 시작
-메서드---
** 윤년 여부의 메서드도 존재한다.
[4] 클래스들의 정보 더하기/빼기
각 클래스는 필드의 값을 변경하기 위한 메서드가 존재
<실습> Timeplus, Timeplus2
[5] 클래스들의 정보 값 변경하기
각 클래스는 필드의 값들을 특정값으로 변경하기 위한 메서드가 존재
<실습>WithPrac
간단하게 날짜를 변경하는 코드
<실습>WithPrac2
간단하게 시간을 변경하는 코드
<실습> Leap
1900년부터 2100년까지 윤년이 언제인지, 몇 번 있는지 알아보는 코드
with() 메서드
: TemporalAdjuster 타입을 인자로 받으면 특정한 날짜를 리턴
<실습> TemproralPrac
with() 메서드 실습
[6] 클래스들의 정보 값 비교하기
time 패키지에서는 각 필드 값을 비교하는 메서드 사용
<실습>After1, After2
34-2 ) Timer/Timer Task
Timer/Timer Task 클래스?
: 개발자가 원하는 특정한 시간에 코드를 실행하거나
특정 시간 간격으로 반복되는 작업 처리
<사용 방법>
1. TimeTask를 상속받는 새로운 클래스 선언
class Work1 extends TimerTask{...}
2. TimeTask 클래스의 run 추상 메서드에서 하고 싶은 작업 오버라이딩
public void run(){....}
3. Timer 객체 생성 후 원하는 시간을 매개변수 값으로 전달
Timer t = new Timer(true); 프로그램 종료 시, 객체 자동 소멸
TimerTask w1 = new Work1();
t.schedule(w1, 5000); 1000==1초
<실습>
'멘토씨리즈 JAVA' 카테고리의 다른 글
36강 컬렉션 프레임웍1 (0) | 2022.05.06 |
---|---|
35강 java.util 패키지3 (0) | 2022.05.06 |
33강 java.util 패키지 (0) | 2022.05.05 |
32강 기본 API 클래스 알아보기2 (0) | 2022.05.04 |
31강 기본 API 클래스 알아보기 (0) | 2022.05.04 |