ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 03. JAVA TIME Package 란?
    JAVA 2021. 12. 30. 22:57
    반응형

    기존에 사용하던 java.util.Date, java.util.Calendar 기능을 대체하기위해 java8 부터 java.time package가 추가되었습니다.

    java8 API에서는 java.time package를 아래와 같이 표현하고 있습니다.

    The main API for dates, times, instants, and durations.
     -> 날짜, 시간, 순간 및 기간에 대한 기본 API입니다.

     

    java.time은 ISO-8601 달력 시스템을 기반으로하며, 7가지 날짜/시간 유형을 제공합니다.

    • Instant - a timestamp (특정한 시각을 나타내거나 기록하는 문자열)
    • LocalDate - 시간이 없는 날짜
    • LocalTime - 날짜가 없는 시간
    • LocalDateTime - 날짜와 시간을 결합
    • OffsetTime  - 날짜가 없는 시간 (UTC/그리니치와의 Offset 포함)
    • OffsetDateTime - 날짜와 시간을 결합 (UTC/그리니치와의 Offset 포함)
    • ZonedDateTime - 날짜와 시간을 결합 (UTC/그리니치와의 Offset, ZoneOffset 포함)

     

    아래 예시를 보면 해당 내용을 조금 더 이해하기 쉽습니다. 

    Instant == 2022-01-03T12:23:55.759Z
    LocalDate == 2022-01-03
    LocalTime == 21:23:55.875
    LocalDateTime == 2022-01-03T21:23:55.876
    OffsetTime == 21:23:55.876+09:00
    OffsetDateTime == 2022-01-03T21:23:55.876+09:00
    ZonedDateTime == 2022-01-03T21:23:55.876+09:00[Asia/Seoul]

     

    위 클래스들에 대해서는 향후 자세히 다뤄볼 예정입니다.

    그리고 java.time package의 경우 아래 메서드 접두사를 사용하여 관리합니다. 그렇기때문에 접두사를 보면 어떤 역활을 하는 메소드 인지 짐작할 수 있습니다.

    • of - 정적 팩토리 메소드
    • parse - 구문 분석에 중점을 둔 정적 팩토리 메서드
    • get - 어떤한 값을 가져오는 메소드
    • is - 무언가가 사실인지 확인하는 메소드
    • with - 날짜/시간을 변경하여 새로운 객체를 리턴해주는 메소드
    • plus - 날짜/시간를 더하는 메소드
    • minus - 날짜/시간를 빼는 메소드
    • to - 다른 유형의 객체로 변경하는 메소드
    • at - 다른 객체와 결합시 사용하는 메소드

     

    java.time package에 대해 알아보았고 다음에는 각 날짜/시간 클래스에 대해서 자세히 알아보도록 하겠습니다.

    반응형

    댓글

Designed by Tistory.