새로운 표준: Temporal API로 Date 객체의 한계 극복하기
기존 Date 객체의 문제를 극복하기 위한 새로운 날짜와 시간을 처리하는 Temporal API 가 등장했습니다. 기존 Date 객체( new Date() )서는 시간만 지정할뿐 시간대(Ex: 'Asia/Seoul' )를 표기하지는 않았는데요. 이러한 특성 때문에 브라우저에서 자동으로 시간대를 처리하여, 국가 간 시차 계산 이나 썸머 타임 같은 복잡한 시간 연산에서는 부정확 하게 처리되는 이슈가 있었습니다. 이런 이슈를 해결하기 위해 Temporal API 가 등장했습니다. 시간대 정보(Asia/Seoul)가 객체 일부로 저장되어 시간대 관련 연산이 직관적이고, 썸머 타임과 같은 복잡한 시간대 규칙을 자동으로 정확하게 처리합니다. Temporal.ZonedDateTime.from("2023-09-15T14:30:00+09:00[Asia/Seoul]"); Temporal API은 현재 TC39 프로세스의 Stage 3(후보) 단계에 있으며, 조만간 Stage 4 로 진입하여 표준이 될 예정입니다. 아직 표준은 아니지만 폴리필 npm 라이브러리 @js-temporal/polyfill 가 있어서 필요하다면 설치하여 바로 사용할 수 있습니다. 기존 Date 객체에 비해 더 명확한 객체 구조를 제공하고, 날짜 계산을 보다 쉽고 정확하게 만들어줄것으로 보입니다. 또 불변성도 지원한다고 하니 복잡한 시간대 처리나 날짜 연산이 필요하다면 Temporal API 사용을 적극 추천드립니다. https://velog.io/@eunbinn/js-dates-finally-fixed?utm_source=substack&utm_medium=email