[TIL] 230721 LocalDateTime VS Instant 궁금해 ?

CountryGirl·2023년 7월 21일
0

TIL

목록 보기
30/80

어제 정말 시간이 UTC로 저장되는 문제때문에 많은 시도를 하였다..
그래서 대체 LocalDateTime 이랑 Instant는 뭐가 다른 것인지 알아보았다.

⏰ LocalDateTime

날짜 & 시간 정보를 가지고 있다.
Timezone이 없다 !!!!

즉, 현재 로컬 시간에 맞춰서 시간을 표현한다.

LocalDateTime 을 사용했을 문제점

현재 로컬 시간에 맞춰서 시간을 표현하기 때문에 서비스가 글로벌 서비스라면 각각 나라마다 로컬 시간이 기록될 것이다. 즉, 데이터가 섞여서 들어올 것이다!!


⏰ Instant

날짜 & 시간 & UTC 정보를 가지고 있다.

Instant 클래스는 순간, 즉시 를 의미하고 연산이 빠르다. (long 형태로 Unix Timestamp 를 저장해서)
현재 순간을 찍으려면 객체를 생성해야한다!

Instant now = Instant.now();

🤔 그럼 언제 LocalDateTime을 쓰고 Instant를 쓰는가?

✅ LocalDateTime 을 쓰면 좋은 경우 (?)

  • 글로벌 서비스가 아닌 단일 region 서비스인 경우

✅ Instant 를 쓰면 좋은 경우 (?)

  • Timestamp를 UTC 형식으로 저장하는 경우 ➡️ DB, 벡엔드 비즈니스 로직, 데이터 교환, 직렬화 시나리오
  • 글로벌 서비스를 하는 하는 경우

나는 이번에 데이터를 RDS에 저장하게 되어서 시간에 대한 문제를 많이 접했고, 많은 것을 알게 되었다!



✅ Reference

TheWing : Java 8 LocalDateTime vs Instant 어떤 상황에서 쓰는게 적합한가?

profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글