Posts [Java] ZonedDateTime vs OffsetDateTime
Post
Cancel

[Java] ZonedDateTime vs OffsetDateTime

글로벌 제품 개발시엔 아래와 같은 처리가 적합하다.

서버 측 처리

데이터베이스 저장

  • 모든 시간 데이터는 UTC로 저장
  • 일관성 있는 데이터 관리와 시간 연산이 용이

API 통신

  • 클라이언트와의 모든 통신은 UTC 기준 처리
  • 서버는 클라이언트로부터 받은 시간을 UTC로 변환하여 처리

클라이언트 측 처리

  • 클라이언트는 서버로부터 받은 UTC 시간을 사용자의 로컬 타임존으로 변환하여 표시

이때 서버 내부적으론 ZonedDateTime 보단 OffsetDateTime 을 활용하는게 더 적합하다.

ZonedDateTimeDST 가 들어가있다보니 정치적 결정이나 DST 규칙 변경으로 인해 저장된 값의 의미가 달라질수있다.

OffsetDateTime 은 항상 동일한 시점을 나타내기에 일관성 있는 시간관리 방식을 적용시킬수있다. (정치적 결정에 상관없이..)

Reference

This post is licensed under CC BY 4.0 by the author.