ToolDeck

시간대 변환기

전 세계 시간대 간 날짜와 시간을 변환합니다

UTCUTC+00:00

04/16/2026, 21:56:00

America/New_YorkUTC-04:00

04/16/2026, 17:56:00

시간대 변환이란?

시간대 변환기는 날짜와 시간을 한 시간대에서 다른 시간대로 변환하여 전 세계 어디서든 동등한 시간을 즉시 확인할 수 있게 합니다. 세계는 협정 세계시(UTC)를 기준으로 고정 오프셋으로 정의된 24개의 주요 시간대로 나뉩니다. UTC 14:00일 때 뉴욕은 09:00(UTC-5), 도쿄는 23:00(UTC+9)입니다. 시간대 간 올바른 변환을 위해서는 출발 시간대와 대상 시간대의 UTC 오프셋, 그리고 각 시간대에서 일광 절약 시간(DST)이 적용 중인지 여부를 알아야 합니다.

IANA 시간대 데이터베이스(Olson 데이터베이스 또는 tz 데이터베이스라고도 함)는 운영 체제, 프로그래밍 언어, 웹 브라우저에서 사용하는 시간대 정의의 표준 소스입니다. America/New_York 또는 Asia/Tokyo처럼 Region/City 형식으로 각 시간대에 표준 식별자를 할당합니다. EST나 PST 같은 고정 약어와 달리, IANA 식별자는 각 지역의 UTC 오프셋 변경 및 DST 전환의 전체 이력을 인코딩하여 과거 또는 미래의 날짜에 대한 시간 변환을 신뢰성 있게 수행할 수 있는 유일한 방법입니다.

이 시간대 변환기는 Intl API를 통해 브라우저의 JavaScript 엔진에 내장된 IANA 시간대 데이터를 사용합니다. 출발 시간대를 선택하고 날짜와 시간을 입력하면, 도구가 일광 절약 시간 조정을 포함하여 대상 시간대의 동등한 시간을 즉시 계산합니다. 브라우저에서 완전히 실행되므로 서버 왕복이 없고 데이터가 기기를 벗어나지 않습니다.

이 시간대 변환기를 사용하는 이유

수동으로 시간대를 계산하면 오류가 발생하기 쉽습니다. 특히 일광 절약 시간이 관련된 경우에는 더욱 그렇습니다. 1월에 UTC-5인 도시가 7월에는 UTC-4가 될 수 있으며, 전환 날짜는 국가마다 다릅니다. 미국과 유럽은 서로 다른 일요일에 시계를 변경하여, 1년 중 2주 동안 뉴욕과 런던의 시간 차이가 평소와 달라집니다. 이 도구는 운영 체제와 동일한 IANA 데이터베이스를 사용하여 이러한 모든 전환을 자동으로 처리합니다.

~
즉시 변환
두 시간대를 선택하고 시간을 입력하면 결과가 즉시 표시됩니다. 폼 제출이나 페이지 새로고침이 필요 없습니다. 입력하는 동안 변환 결과가 업데이트됩니다.
~
DST 반영 결과
변환기는 일광 절약 시간 전환을 자동으로 반영합니다. 브라우저 내장 IANA 시간대 데이터를 사용하므로 과거 또는 미래의 어떤 날짜를 입력하더라도 정확한 오프셋이 반영된 결과를 표시합니다.
~
개인정보 보호 우선 처리
모든 변환은 Intl API를 사용하여 브라우저에서 로컬로 처리됩니다. 날짜, 시간, 시간대 선택 정보가 어떤 서버에도 전송되지 않습니다.
~
계정 불필요
회원가입, 소프트웨어 설치, 권한 부여 없이 변환기를 사용할 수 있습니다. 페이지를 열고, 시간을 변환하고, 닫으면 됩니다.

시간대 변환기 활용 사례

팀 간 일정 조율
서울, 베를린, 싱가포르에 팀원이 분산되어 있을 때 모두에게 맞는 회의 시간을 찾으려면 세 개 이상의 시간대를 변환해야 합니다. 본인의 로컬 시간대에서 제안 시간을 입력하면 각 팀원의 위치에서 해당 시간이 업무 시간 내에 해당하는지 즉시 확인할 수 있습니다.
API 타임스탬프 디버깅
API 응답에는 UTC 또는 서버 로컬 시간대의 타임스탬프가 포함되는 경우가 많습니다. 해당 타임스탬프를 로컬 시간으로 변환하여 이벤트가 예상한 시점에 발생했는지, 시간 기반 로직이 올바른지 검증하세요.
DevOps 장애 타임라인 구성
장애 발생 시 로그 항목이 여러 지역의 서버에서 수집될 수 있습니다. 모든 타임스탬프를 단일 기준 시간대(일반적으로 UTC)로 변환하여 이벤트의 정확한 타임라인을 구성하세요.
날짜 로직 QA 테스트
다양한 지역의 사용자에게 날짜를 표시하는 애플리케이션은 특정 시간대 입력으로 테스트해야 합니다. 변환기를 사용하여 DST 전환 시 발생하는 엣지 케이스(예: 봄에 한 시간이 건너뛰어지는 경우)에 대한 테스트 케이스를 생성하세요.
데이터 파이프라인 조율
특정 시간대로 예약된 ETL 작업이 다른 시간대의 데이터 소스나 하위 소비자의 일정과 맞아야 할 수 있습니다. 예약된 실행 시간을 변환하여 파이프라인 단계가 올바른 순서로 실행되는지 확인하세요.
시간대 개념 학습
UTC 오프셋, 국제 날짜선, 일광 절약 시간 규칙을 학습하는 학생들이 다양한 시간대 쌍을 실험하며 지역 간 시간 변화를 직접 확인할 수 있습니다.

IANA 시간대 참조 표

IANA 시간대 데이터베이스는 400개 이상의 시간대 식별자를 정의하며, 정치적 변경, 새로운 DST 규칙, 이력 수정을 반영하여 연 수회 업데이트됩니다. 아래 표는 가장 많이 사용되는 시간대와 표준 UTC 오프셋 및 DST 동작을 나열합니다. 표시된 오프셋은 표준 시간 기준이며, DST 컬럼은 해당 지역에서 일광 절약 시간이 적용될 때의 조정된 오프셋을 나타냅니다.

IANA 식별자일반 명칭UTC 오프셋DST
UTCCoordinated Universal Time+00:00No
America/New_YorkEastern Time (US)-05:00Yes (EDT -04:00)
America/ChicagoCentral Time (US)-06:00Yes (CDT -05:00)
America/DenverMountain Time (US)-07:00Yes (MDT -06:00)
America/Los_AngelesPacific Time (US)-08:00Yes (PDT -07:00)
Europe/LondonGreenwich Mean Time+00:00Yes (BST +01:00)
Europe/BerlinCentral European Time+01:00Yes (CEST +02:00)
Europe/MoscowMoscow Time+03:00No
Asia/DubaiGulf Standard Time+04:00No
Asia/KolkataIndia Standard Time+05:30No
Asia/ShanghaiChina Standard Time+08:00No
Asia/TokyoJapan Standard Time+09:00No
Australia/SydneyAustralian Eastern Time+10:00Yes (AEDT +11:00)
Pacific/AucklandNew Zealand Standard Time+12:00Yes (NZDT +13:00)

코드 예제

모든 주요 프로그래밍 언어는 IANA 데이터베이스를 통해 시간대 변환을 지원합니다. 아래 예제는 Intl API를 사용하는 JavaScript, zoneinfo 모듈을 사용하는 Python, time 패키지를 사용하는 Go, 그리고 셸 스크립트용 GNU date 명령으로 UTC 타임스탬프를 다른 시간대로 변환하는 방법을 보여줍니다.

JavaScript (Intl API)
// Convert a date from one timezone to another
const date = new Date('2026-03-15T09:00:00Z')

// Format in specific timezone
const nyTime = date.toLocaleString('en-US', { timeZone: 'America/New_York' })
// → "3/15/2026, 5:00:00 AM"

const tokyoTime = date.toLocaleString('en-US', { timeZone: 'Asia/Tokyo' })
// → "3/15/2026, 6:00:00 PM"

// Get the UTC offset for a timezone programmatically
function getUtcOffset(tz: string, date = new Date()) {
  const fmt = new Intl.DateTimeFormat('en-US', {
    timeZone: tz,
    timeZoneName: 'longOffset',
  })
  const parts = fmt.formatToParts(date)
  return parts.find(p => p.type === 'timeZoneName')?.value ?? ''
}
getUtcOffset('Asia/Kolkata') // → "GMT+05:30"
Python (zoneinfo + datetime)
from datetime import datetime
from zoneinfo import ZoneInfo

# Create a timezone-aware datetime
dt = datetime(2026, 3, 15, 9, 0, tzinfo=ZoneInfo('UTC'))

# Convert to New York time
ny = dt.astimezone(ZoneInfo('America/New_York'))
print(ny)  # → 2026-03-15 05:00:00-04:00 (EDT in March)

# Convert to Tokyo time
tokyo = dt.astimezone(ZoneInfo('Asia/Tokyo'))
print(tokyo)  # → 2026-03-15 18:00:00+09:00

# Get current time in any timezone
now_berlin = datetime.now(ZoneInfo('Europe/Berlin'))
print(now_berlin.strftime('%Y-%m-%d %H:%M %Z'))  # → 2026-03-15 10:00 CET
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	utc := time.Date(2026, 3, 15, 9, 0, 0, 0, time.UTC)

	// Load timezone by IANA name
	ny, _ := time.LoadLocation("America/New_York")
	tokyo, _ := time.LoadLocation("Asia/Tokyo")

	fmt.Println(utc.In(ny))    // → 2026-03-15 05:00:00 -0400 EDT
	fmt.Println(utc.In(tokyo)) // → 2026-03-15 18:00:00 +0900 JST

	// Get the UTC offset in seconds
	_, offset := utc.In(ny).Zone()
	fmt.Printf("UTC offset: %+d hours\n", offset/3600) // → UTC offset: -4 hours
}
CLI (GNU date / TZ variable)
# Display current time in a specific timezone
TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S %Z'
# → 2026-03-15 18:00:00 JST

# Convert a UTC timestamp to another timezone
TZ='America/Los_Angeles' date -d '2026-03-15T09:00:00Z' '+%Y-%m-%d %H:%M %Z'
# → 2026-03-15 02:00 PDT

# List all available IANA timezone names
timedatectl list-timezones | head -20

자주 묻는 질문

UTC와 GMT의 차이는 무엇인가요?
UTC(협정 세계시)와 GMT(그리니치 평균시)는 실제로 동일한 시간을 나타냅니다. 본초 자오선으로부터 오프셋이 0입니다. 차이는 기술적인 것입니다. UTC는 원자시계로 정의된 전 세계 컴퓨팅 표준 시간입니다. GMT는 영국과 연결된 시간대 명칭입니다. 코드에서는 항상 GMT가 아닌 UTC를 기준점으로 사용하세요.
일광 절약 시간이 시간대 변환에 어떤 영향을 미치나요?
지역에서 DST를 사용하면 연중 일부 기간 동안 UTC 오프셋이 한 시간(때로는 30분 또는 45분) 변경됩니다. 예를 들어 America/New_York는 겨울에 UTC-5(EST), 여름에 UTC-4(EDT)입니다. IANA 시간대 식별자 대신 오프셋을 직접 하드코딩하면 연중 절반 동안 변환 결과가 틀립니다. 고정 오프셋 대신 항상 America/New_York 같은 전체 IANA 이름을 사용하세요.
EST나 PST 같은 약어 대신 IANA 시간대 이름을 사용해야 하는 이유는 무엇인가요?
시간대 약어는 모호합니다. CST는 Central Standard Time(UTC-6), China Standard Time(UTC+8), 또는 Cuba Standard Time(UTC-5)을 의미할 수 있습니다. America/Chicago 같은 IANA 식별자는 전 세계적으로 고유하며 해당 지역의 오프셋 변경 및 DST 규칙의 전체 이력을 인코딩합니다. IANA 데이터베이스는 IANA(Internet Assigned Numbers Authority)에서 관리하며 연 수회 업데이트됩니다.
DST 전환으로 건너뛰어진 시간에 해당하는 경우 어떻게 되나요?
시계가 앞으로 당겨질 때 한 시간이 건너뜁니다. 예를 들어 America/New_York에서는 3월 두 번째 일요일에 오전 2:00가 즉시 오전 3:00로 넘어갑니다. 그날 해당 시간대에서 오전 2:30은 존재하지 않습니다. 대부분의 프로그래밍 언어는 라이브러리에 따라 시간을 오전 3:00로 앞당기거나 오류를 발생시켜 이를 처리합니다.
과거 날짜에 대해 정확하게 시간을 변환할 수 있나요?
IANA 시간대 식별자를 사용한다면 가능합니다. IANA 데이터베이스에는 수십 년 전으로 거슬러 올라가는 오프셋 변경 이력이 포함되어 있습니다. 예를 들어, 중국은 1949년 이전에 다섯 개의 시간대를 사용하다가 단일 시간대(UTC+8)로 통합했습니다. 데이터베이스에는 이러한 전환이 기록되어 있으므로, Asia/Shanghai에 대한 1945년 타임스탬프를 변환하면 올바른 역사적 오프셋이 사용됩니다.
시간대 문제를 피하기 위해 데이터베이스에 시간을 어떻게 저장해야 하나요?
모든 타임스탬프를 UTC로 저장하세요. 사용자에게 시간을 표시할 때는 렌더링 시점에 UTC에서 해당 사용자의 로컬 시간대로 변환하세요. 이 방식은 모호함을 없앱니다. UTC 타임스탬프는 서버나 사용자의 위치에 관계없이 정확히 하나의 의미를 가집니다. PostgreSQL의 TIMESTAMPTZ 타입과 MySQL의 TIMESTAMP 타입은 모두 내부적으로 UTC로 값을 저장합니다.
30분 또는 45분 오프셋을 가진 시간대가 있나요?
있습니다. 인도 표준시(Asia/Kolkata)는 UTC+5:30, 네팔 표준시(Asia/Kathmandu)는 UTC+5:45, 채텀 제도(Pacific/Chatham)는 UTC+12:45입니다. 이란(Asia/Tehran)은 UTC+3:30을 사용합니다. 이러한 분수 오프셋 때문에 변환 로직을 작성할 때 모든 시간대 차이가 정수 시간이라고 가정해서는 안 됩니다.