본문 바로가기
Q&A해결2025년 1월 15일1분 읽기

Docker 컨테이너에서 Node.js 앱 실행 시 한국 시간이 UTC로 나옵니다 — timezone 설정

보
보안전문가태호
조회 909댓글 2

Docker 컨테이너에서 Node.js 앱을 실행하고 있는데, new Date()의 결과가 항상 UTC입니다. 한국 시간(KST, UTC+9)으로 나오게 하려면 어떻게 설정해야 하나요?

console.log(new Date().toLocaleString()) //-01-15 03:00:00 (UTC)

Dockerfile에서 어떻게 설정하는 게 맞는지 궁금합니다.

댓글 2

김김영삼1년 전

Docker 컨테이너의 기본 timezone은 UTC입니다. 2가지 방법이 있습니다:

방법 1: 환경변수 (권장)
# Dockerfile
ENV TZ=Asia/Seoul

# 또는 docker-compose.yml
services:
app:
environment:
- TZ=Asia/Seoul
방법 2: Dockerfile에서 tzdata 설치
FROM node:20-alpine
RUN apk add --no-cache tzdata
ENV TZ=Asia/Seoul
Node.js 코드에서 확인
// 환경변수 확인
console.log(process.env.TZ) // Asia/Seoul
console.log(new Date().toLocaleString("ko-KR", { timeZone: "Asia/Seoul" }))

주의: DB 저장은 UTC로 하고, 표시할 때만 KST로 변환하는 것이 모범 사례입니다.

보보안전문가태호1년 전
환경변수 한 줄로 해결됐습니다! DB는 UTC 유지하라는 팁도 감사합니다 👍
Ctrl+Enter로 등록