[Java] Instant , LocalDateTime, OffsetDateTime, ZonedDateTime

해니·2024년 1월 29일
0

Java

목록 보기
8/34
post-thumbnail

Instant

  • 날짜와 시간을 초단위(정확히는 나노초)로 표현한다.
  • 타임스탬프(time-stamp)
    • 날짜와 시간을 초단위로 표현한 값
    • 날짜와 시간을 하나의 정수로 표현할 수 있으므로 날짜와 시간의 차이를 계산하거나 순서를 비교하는데 유리해서 데이터베이스에 많이 사용된다.
  • Instant는 항상 UTC(+00:00)를 기준으로 하기 때문에, LocalTime과 차이가 있을 수 있다.
    • 한국은 시간대가 '+09:00'이므로 Instant 와 LocalTime 간에는 9시간의 차이가 있다.



LocalDateTime

  • 날짜와 시간만 존재한다.
  • Java Time에서 Local이 들어간다는 것은 시간대(Zone Offset/Zone Region)에 대한 정보가 없음을 의미한다.
    • 시차 정보가 없기 때문에 다른 위치에 있는 서버에서 동시에 저장되는 경우 다른 시간으로 저장 되며, 같은 시간이라는 것을 알 수 없다.



OffsetDateTime

  • LocalDateTimeoffset 정보가 추가된다.
  • 시차 정보가 있기 때문에 다른 위치에 있는 서버에서 동시에 저장되는 경우 시차 정보를 통해 같은 시간임을 알 수 있.



ZonedDateTime

  • OffsetDateTimezone 정보가 추가된다.
  • 시차 정보와 함께 지역 정보까지 확인 가능하다.



LocalDateTime은 날짜, 시간
OffsetDateTime은 날짜, 시간, offset(GMT 기준)
zonedDateTime은 날짜, 시간, offset(GMT 기준), zone






출처
Java8+ Instant vs LocalDateTime 각 사용방법
[JAVA] LocalDateTime vs. Instant (feat. ZonedDateTime, OffsetDateTime)
[ZonedDateTime] 그리고 OffsetDateTime

profile
💻 ⚾️ 🐻

0개의 댓글