열심히 끝까지

34강 java.util 패키지2 본문

멘토씨리즈 JAVA

34강 java.util 패키지2

노유림 2022. 5. 5. 02:43

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