[JAVA8] Date와 Time 소개

이재훈·2023년 5월 9일
0

JAVA8

목록 보기
8/23

인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다.

"더 자바, JAVA8 바로가기"


자바 8에 새로운 날짜와 시간 API가 생긴 이유

  • 그 전까지 사용하던 java.util.Date 클래스는 mutable하기 때문에 thread safe하지 않다.
  • 클래스 이름이 명확하지 않다. Date인데 시간까지 다룬다.
  • 버그 발생할 여지가 많다. (타입 안정성이 없고, 월이 0부터 시작한다.)
  • 날짜 시간 처리가 복잡한 애플리케이션에서는 보통 Joda Time을 쓰곤 했다.

자바 8에서 제공하는 Date-Time API

  • JSR-310 스펙의 구현체를 제공한다.
  • 디자인 철학
    - Clear
    - Fluent
    - Immutable : 멀티쓰레드 환경에서 사용하기 어렵다.
    - Extensible

주요 API

  • 기계용 시간 (machine time과 인류용 time)으로 나눌 수 있다.
  • 기계용 시간은 EPOCK (1970년 1월 1일 0시 0분 0초)부터 현재 시간까지의 타임 스탬프를 표현한다.
  • 인류용 시간은 우리가 흔히 사용하는 연,월,일,시,분,초 등을 표현한다.
  • 타임스탬프는 Instant를 사용한다.
  • 특정 날짜(LocalDate), 시간(LocalTime), 일시(LocalDateTime)을 사용할 수 있다.
  • 기간을 표현할 때는 Duration (시간기반)과 Period (날짜 기반)을 사용할 수 있다.
  • DateTimeFormatter을 사용하여 일시를 특정한 문자열로 포매팅 할 수 있다.
profile
부족함을 인정하고 노력하자

0개의 댓글