본문 바로가기

Java/ Java_Time Package

Java_Time Package

반응형

Java Time Package 

 

 1. java.time 패키지 

    - JDK 1.8~
    - Date, Calendar 날짜, 시간 다루는 클래스 + 유용한 기능

 

( 4개의 하위 패키지 )

  * java.time    - 날짜, 시간을 다루는 핵심 클래스 제공
    ㄱ. java.time.chrono - 표준(ISO)이 아닌 달력 시스템을 위한 클래스 제공  
    ㄴ. java.time.format - 날짜, 시간, 파싱(parse), 형식화하기 클래스 제공
    ㄷ. java.time.temporal - 날짜, 시간의 필드와 단위를 위한 클래스 제공
    ㄷ. java.time.zone - 시간대(time-zone) 관련 클래스 제공

 


2. 위의 패키지에 속한 클래스들은 "불변" 한다. (String)
  String a = "a";
  a +=a;     // 새로운 객체생성

 


3. Date, Calendar 클래스 = 날짜 + 시간 정보
  java.time 패키지의 클래스는 날짜, 시간 클래스를 구분해놨다.
    ㄱ. 날짜 : LocalDate 클래스
    ㄴ. 시간 : LocalTime 클래스 
    ㄷ. 날짜 + 시간 : LocalDateTime
      날짜 + 시간 + 시간대 : ZonedDateTime
    ㄹ. Date 클래스 유사한 클래스 : Instant 클래스
      날짜 + 시간을 초 단위(나노)로  표현   
    ㅁ. "타임스탬프" 정의 ? 날짜와 시간을 초 단위로 표현한 값.
      사용 ? 날짜 또는 시간의 차이, 순서, DB(DataBase)에서 많이 사용
    ㅂ. 날짜 세부 클래스 : Year, YearMonth, MonthDay 클래스 등등

 


4. Period 와 Duration
  ㄱ. 날짜 - 날짜 (간격) : Period 클래스
      두 '날짜' 간의 차이를 표현하기 위해서 사용하는 클래스
  ㄴ. 시간 - 시간 (간격) : Duration 클래스
      두 '시간' 간의 차이를 표현하기 위해서 사용하는 클래스

 


5. java.time 패키지의 속한 클래스의 객체 생성하는 방법
  ㄱ. now()
  ㄴ. of()
      LocalDate d = LocalDate.now(); // 현재 시스템의 날짜, 시간, 시간대
      LocalTime T = LocalTime.now();
      LocalDateTime dt = LocalDateTime.now();
      ZonedDateTime zdt = ZonedDateTime.now();

 

 

 

 

6.  class LocalDate implements Temporal, TemporalAccssor, TemporalAjuster 
    class LocalTime implements Temporal, TemporalAccssor, TemporalAjuster 
    class LocalDateTime implements Temporal, TemporalAccssor, TemporalAjuster 
 
    Temporal 과 TemporalAmount
    Period  - implements TemporalAmount
    Duration - implements TemporalAmount

 

   

7. TemporalUnit 인터페이스 ? 날짜, 시간의 단위를 정의해 놓은 것
    위의 인터페이스를 구현한 열거형 (enum)? ChronoUnit 열거형

    TemporalField 인터페이스 ? 년, 월, 일 등 날짜와 시간의 필드를 정의해 놓은 것
    ? ChronoField 열거형

 

    ex) 
    LocalTime now = LocalTime.now();// 현재 시간
    int m = now.getMinute();//분
    System.out.println(m);
    m = now.get(ChronoField.SECOND_OF_MINUTE);
    System.out.println(m);
 

 

8. 마지막 날짜 
   ex) 2010.01.01   -1 날짜 객체.일     * add (일수)
   plus(), minus() 등등 날짜, 시간을 다루는 메서드 제공.

 

 

 

여기서 부터는 코드 예시를 정리해 보았다.

* 기본 코드 살펴보기

 

 

* LocalDate now. 

 

 

 

* 간결화

 

 

 

 

* 필드의 값 변경하기 - with() , plus() , minus() 

 

 

 

* 불변성과 절삭하기

 

 

 

* String -> LocalDate 형 만들기

 

 

 

* Period & Duration  ,    between() & util()

 

 

 

* 두 시간의 차이 (시간 - 시간 차이)  /  Duration -> LocalTime 형 변환  

반응형