# Instant

Instant 시간 정밀도
배경) 서버 개발 시 가장 중요한 부분은 하위 호환입니다. 이번 포스팅에서는 java version에 따라 Instant.now()의 출력값이 달라지는 이유와 문제를 해결했던 방법을 공유하려고 합니다. JDK8 - Instant.now() JDK17 - Instant.now() 내용) Instant.now() 의 데이터가 다르니 해당 부분부터 탐색 시작! 먼저 JDK8 부터 확인해보겠습니다. (OpenJDK8) [Instant.java](https://github.com/openjdk/jdk8/blob/maste

java.time 패키지
개요 글로벌 서비스를 개발함에 있어서 고려해야할 여러가지 사항들 중에 빠질수 없는 것이 바로 시간에 대한 개념이다. 글로벌 서비스를 클라우드 환경에서 제공하게 될텐데 각 서버들은 세계 각국에 흩어져 있고 그에 따라 서비스 시간에 대한 차이가 발생하게 된다. 또한 UI, 서버, DB 간의 날짜 포맷이 다르게 되면 이를 동기화 하기 위한 작업이 추가로 들어가게 된다. 따라서 이 글에서는 java에서 지원하는 여러 time 포맷들을 알아보고 어떤 식으로 구성하는 것이 좋을까 고찰해볼 것이다. Date와 Calendar를 지양하는 이유 Date와 Calendar API는 Mutable 하다. 즉 변경이 가능하기 때문에 Thread-safety하지 않다. Calendar를 이용하여 월을 가져오면 현재 월 - 1 값이 나온다. 월이 0부터 시작되기 때문이다. 이처럼 직관적이지 않다. 시간을 나타내는 여러 개념 > 타임존: 동일한 로컬 시간을 따르

LocalDateTime vs Instant vs ZonedDateTime
INTRO 개발을 하다보면 항상 날짜와 시간 관련해서 어떻게 할지 헷갈리는 경우가 많다. 일단 처음부터 결론을 말하자면 자바 8부터 나온 날짜와 시간관련 API를 사용하자! 자바8에서 날짜와 시간과 관련된 API가 나왔다. LocalDateTime ZonedDateTime Instant ,,,, 다들 비슷해보이지만 완전히 다르다. 먼저 날짜와 시간과 관련된 간단하게 개념을 한번 정리 한 후 왜 자바 8 이전의 날짜와 시간과 관련된 API를 지양하는지 그리고 자바 8부터 나온 각 API에 대해서 알아본 후 사용예시를 한번 알아보겠습니다. GMT? UTC? 타임존? 시차? ![https:/