JavaScript Temporal이 옵니다
(developer.mozilla.org)- 개요
- JavaScript Temporal 객체의 구현이 브라우저의 실험적 버전에서 출시되기 시작
- 웹 개발자들을 위한 날짜와 시간 처리가 크게 단순화되고 현대화될 예정
- 스케줄링, 국제화, 시간 관련 데이터를 다루는 애플리케이션에서 효율적이고 정확한 내장 기능 사용 가능
- JavaScript
Date
객체의 문제점
- 1995년 Java의 초기
java.util.Date
구현을 복사해 만들어짐 - 사용자의 로컬 시간과 UTC만 지원하고 시간대 지원이 없음
- 파싱 동작이 매우 불안정하고 가변적(mutable)
- 일광절약시간(DST)과 역사적 달력 변경 계산이 어려움
- Temporal의 주요 기능
-
Date
객체의 완전한 대체제로 설계 - 시간대와 달력 표현 지원
- 200개 이상의 유틸리티 메서드 제공
- 변환, 비교, 계산, 포맷팅 등 다양한 기능 포함
- 브라우저 지원 현황
- Firefox가 현재 가장 성숙한 구현을 보유
- Firefox Nightly 버전에서 실험적 기능으로 제공
- Safari와 Chrome도 구현 진행 중
- TC39 문서 페이지에서
@js-temporal/polyfill
을 통해 시험 가능
- 핵심 구성 요소
-
Duration
: 두 시점 간의 차이 -
Instant
: 타임스탬프 -
ZonedDateTime
: 시간대가 있는 날짜/시간 -
PlainDateTime
: 시간대 없는 날짜/시간 - 기타 다양한 날짜/시간 관련 클래스 제공
이 새로운 API는 JavaScript에서 날짜와 시간을 다루는 현대적인 접근 방식을 제공할 것으로 기대됩니다.
기존에 여러 타임존에 따른 시간관리를 하려면 라이브러리를 쓰거나 기본적으로 여러 조건을 생각해서 구현해야했는데 기본적으로 지원해주는 방향으로 가면 좋지요