본문 바로가기
TECH

ZonedDateTime

by Stella-Park 2025. 5. 19.
728x90
const now = new Date();

 

위의 코드는 문제점이 있다.

  1. 시간대를 알 수 없음
  2. 화면에 보여줄 때와 데이터를 저장할 때 값 불일치 (서버는 UTC, 클라이언트는 로컬 시간대로 보여주는 경우가 많음)
  3. DST(Summer Time) 문제 (하절기에 국가의 표준시보다 한 시간 앞당겨 사용 - 해외주식 할 때 경험 가능)

자바스크립트에서 Date 객체는 Number 타입이기 때문에 관점 원래 날짜의 의미가 사라지고, 정확히 알 수 없다.

 

이러한 문제를 해결하기 위해 시간대가 포함된 날짜/시간 표현 방식이 필요

 

<!--dayjs와 timezone 플러그인 사용 예제 -->

import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';

dayjs.extend(utc);
dayjs.extend(timezone);

const dt = dayjs.tz("2025-05-19 12:00", "Asia/Seoul");
console.log(dt.format());  
// → 2025-05-19T12:00:00+09:00

console.log(dt.tz("America/New_York").format());  
// → 2025-05-18T23:00:00-04:00

 

코드까지는 알아봤고, 그럼 언제 사용해야 할까?

  1. 글로벌 서비스에서 사용자별로 현재 시간을 보여주어야 할 때
  2. 예약 시스템, 항공권 조회, 금융 거래 기록 등 시간이 중요할 때
  3. 서버와 클라이언트 동일한 시간으로 사용해야 할 때
728x90

'TECH' 카테고리의 다른 글

setHTMLUnsafe  (2) 2025.05.26
content-visibility 속성  (2) 2025.05.22
Swiper  (0) 2024.10.25
🔎 EC2 + Route S3 + SSL 인증서  (0) 2024.08.11
Lottie 로딩바 적용하기  (0) 2023.08.06