사전 UTC 오프셋
개념

UTC 오프셋

gabury1고친 사람 github-actions[bot]

UTC 오프셋은 어느 지역의 시각이 세계 기준 시각보다 얼마나 앞서거나 뒤처지는지 알려 줍니다. 서울 시각에는 「9시간 앞선다」는 표시가 붙습니다. 이 표시가 있으면 지구 반대편에서 적은 시각도 같은 잣대 위에 놓고 견줄 수 있습니다.

쉽고 빠른 이해

무슨 일을 하는 물건인가 — 시각 끝에 붙어 「이 시각은 세계 기준 시각(UTC)보다 몇 시간 앞서 있다」를 알려 줍니다. 14:30+09:00 은 서울의 오후 2시 30분입니다. 기준 시각으로는 새벽 5시 30분입니다.

왜 이렇게 하나 — 시각만 적으면 어느 지역 시계로 읽은 값인지 모릅니다. 서울의 14:30 과 런던의 14:30 은 다른 순간입니다. 그런데 글자는 같습니다.

어떻게 도나

  1. 지역 시각이 기준 시각보다 얼마나 앞서는지를 +09:00 처럼 시각 뒤에 붙입니다
  2. 받는 쪽은 적힌 시각에서 그만큼을 빼서 기준 시각을 얻습니다
  3. 기준 시각끼리 견주면 어느 쪽이 먼저인지 나옵니다

대가 — 이 숫자는 한 순간의 차이만 말합니다. 여름에 시계를 앞당기는 지역은 철마다 숫자가 바뀝니다. 숫자만 들고 있으면 그 규칙을 모릅니다. 그래서 지역 시각을 지켜야 하는 약속은 오프셋 대신 Europe/London 같은 시간대 이름으로 적습니다. 부호를 거꾸로 적는 표기도 있어서 읽을 때 헷갈립니다.

상세

이 절은 오프셋이 무엇을 재는지, 시각 뒤에 어떻게 붙는지, 시간대와 무엇이 다른지를 차례로 봅니다. 서울·런던·뉴욕의 시각을 가지고 봅니다.

해외 축구 중계 편성표에는 「현지 시각 20시, 한국 시각 새벽 4시」처럼 두 시각이 나란히 적힙니다. 경기는 하나입니다. 어느 시계로 읽느냐에 따라 숫자만 달라집니다. 두 시계가 몇 시간 벌어져 있는지만 알면 한쪽 숫자로 다른 쪽을 구할 수 있습니다.

지역 시각에서 UTC 를 뺀 값

UTC(Coordinated Universal Time, 협정 세계시)는 세계가 함께 맞추는 기준 시각입니다. 나라마다 쓰는 시각은 이 기준에서 몇 시간 앞서거나 뒤집니다. 서버가 여러 지역에 흩어져 있어도 이 기준 하나에 맞춰 두면 서로의 시각을 견줄 수 있습니다.

UTC 오프셋은 지역 시각에서 UTC 를 뺀 값입니다. 서울 시각은 UTC 보다 9시간 앞서므로 서울의 오프셋은 +9시간입니다. 기준에서 얼마나 떨어져 있는지를 뜻하는 오프셋이라는 말이 여기서는 UTC 에서 떨어진 시간을 가리킵니다.

+·- 부호는 그리니치를 기준으로 갈립니다. 그리니치는 영국 런던의 한 지역입니다. 경도 0도인 본초 자오선이 이곳을 지납니다. 오프셋은 이 선을 0 으로 삼아 동서로 셉니다.

지구는 서쪽에서 동쪽으로 돕니다. 그래서 동쪽 지역이 해를 먼저 맞습니다. 그리니치보다 동쪽은 시각이 UTC 보다 앞서서 + 가 붙습니다. 서쪽은 뒤처져서 - 가 붙습니다.

뉴욕은 겨울에 UTC 보다 5시간 늦어 -05:00 입니다. 뉴욕은 여름마다 시계를 한 시간 앞당깁니다. 그래서 여름에는 -04:00 이 됩니다.

오프셋이 늘 시간 단위로 떨어지지는 않습니다. 인도는 +05:30, 네팔은 +05:45 를 씁니다. 그래서 오프셋은 시와 분을 함께 적습니다.

시각 뒤에 붙는 꼬리

오프셋은 시각 문자열의 맨 끝에 붙습니다. 날짜·시각 표기 표준인 ISO 8601 이 이 꼴을 씁니다. ISO(International Organization for Standardization, 국제 표준화 기구)는 국제 표준을 정하는 기구입니다.

ISO 8601 을 인터넷용으로 좁힌 규격 RFC 3339 도 같은 꼴을 씁니다. RFC(Request for Comments)는 인터넷 기술 문서에 붙는 이름입니다.

아래 세 줄은 서울·UTC·뉴욕에서 적은 같은 한 순간입니다.

14:30+09:00   // 서울 · UTC 05:30
05:30Z        // UTC 그 자체
00:30-05:00   // 겨울 뉴욕 · UTC 05:30

맨 끝의 +09:00 이 오프셋입니다. 가운데 줄의 Z 는 오프셋이 0 이라는 표시입니다. 그 시각이 곧 UTC 라는 뜻입니다. 셋 모두 적힌 시각에서 오프셋을 빼면 UTC 05:30 이 나옵니다. 뉴욕의 -05:00 은 빼면 오히려 5시간을 더하게 됩니다.

표기는 몇 갈래가 있습니다. 쌍점을 뺀 +0900 도 쓰입니다(ISO 8601). 인터넷에서는 +09:00 처럼 부호·시·쌍점·분을 다 적은 꼴과 Z 만 씁니다(RFC 3339).

-00:00 이라는 특별한 값도 있습니다(RFC 3339). 겉보기로는 +00:00 과 같은 0 입니다. 그래도 뜻은 다릅니다.

Z 나 +00:00 은 「이 시각은 UTC 로 읽으면 된다」는 뜻입니다. 적은 쪽이 UTC 를 기준으로 골랐다는 것까지 알려 줍니다. -00:00 은 「UTC 로는 이 시각이 맞다. 원래 지역의 오프셋은 모른다」는 뜻입니다.

이 구분은 기록을 옮겨 적을 때 쓸모 있습니다. 여러 지역에서 모은 기록을 UTC 로 바꿔 두면서 원래 오프셋은 남기지 않았다고 해 봅시다. 이 시각에 -00:00 을 붙이면 받는 쪽은 원래 지역 시각으로 되돌릴 수 없다는 것까지 압니다.

같은 순간을 견주는 법

오프셋이 다른 두 시각은 글자를 그대로 견주면 틀립니다. 아래 두 줄에서 글자로는 위가 늦어 보입니다.

2026-09-24T14:30:00+09:00   // UTC 05:30
2026-09-24T06:00:00+00:00   // UTC 06:00

오프셋을 빼서 UTC 로 옮기면 위가 30분 이릅니다. 그래서 순서를 따질 때는 둘 다 UTC 로 옮긴 뒤에 견줍니다.

순간을 저장할 때도 같은 이유로 UTC 로 옮겨 둡니다. 사람에게 보여 줄 때 그 사람의 오프셋을 붙여 다시 지역 시각으로 바꿉니다. 저장된 값끼리는 오프셋을 신경 쓰지 않고 바로 견줄 수 있습니다.

오프셋과 시간대

한 지역의 오프셋은 늘 같지 않습니다. 앞의 뉴욕처럼 여름철에 시계를 한 시간 앞당겨 쓰는 제도를 서머타임이라고 합니다. 이 제도를 쓰는 런던은 겨울에 +00:00, 여름에 +01:00 입니다.

그래서 「어느 지역이 언제 어떤 오프셋을 쓰나」를 담은 규칙 묶음이 따로 있습니다. 이것을 시간대라고 부릅니다. 오프셋은 한 순간의 차이를 적은 숫자 하나입니다. 시간대는 날짜마다 그 숫자를 정해 주는 규칙 전체입니다.

시간대에는 Europe/London 같은 이름이 붙습니다. IANA(Internet Assigned Numbers Authority)는 인터넷의 이름과 번호를 관리하는 기관입니다. 이 기관이 세계의 시간대 규칙을 모아 IANA 시간대 데이터베이스로 펴냅니다. 시간대 이름은 이 데이터베이스에 실린 이름입니다.

flowchart TD
    subgraph Z["시간대 · 날짜마다 오프셋을 정하는 규칙"]
        S["Asia/Seoul"]
        T["Asia/Tokyo"]
        L["Europe/London"]
    end
    S -->|일 년 내내| P9["+09:00"]
    T -->|일 년 내내| P9
    L -->|겨울| P0["+00:00"]
    L -->|여름| P1["+01:00"]

그림은 두 방향을 보여 줍니다. 시간대와 날짜를 알면 오프셋이 하나로 정해집니다. 거꾸로 오프셋만 보고는 시간대를 알 수 없습니다. 도쿄(Asia/Tokyo)도 서울(Asia/Seoul)과 같은 +09:00 을 쓰기 때문입니다.

이 차이는 앞날의 시각을 적을 때 드러납니다. 「런던에서 매주 월요일 오전 9시 회의」를 겨울 오프셋 +00:00 으로 박아 두면, 여름이 되어도 UTC 09:00 에 알림이 갑니다. 런던 사람에게는 오전 10시입니다. 지역 시각을 지켜야 하는 약속은 오프셋이 아니라 시간대 이름으로 적어야 철이 바뀌어도 맞습니다.

부호가 거꾸로 붙는 표기

일상에서 쓰는 UTC+9 나 GMT+9 는 서울처럼 9시간 앞선다는 뜻입니다. GMT(Greenwich Mean Time, 그리니치 평균시)는 UTC 이전에 쓰던 기준 시각입니다. 이 표기에서는 UTC 와 같은 뜻으로 읽습니다.

그런데 부호를 반대로 쓰는 관습이 하나 있습니다. 유닉스 계열 운영체제에서는 프로그램이 쓸 시간대를 TZ 환경 변수로 정합니다. 이 변수를 적는 법은 POSIX(Portable Operating System Interface)가 정했습니다. POSIX 는 유닉스 계열 운영체제의 공통 규격입니다.

TZ 환경 변수는 그리니치 서쪽을 +, 동쪽을 - 로 적습니다. 서울은 한국 표준시(Korea Standard Time)의 줄임말 KST 를 앞에 써서 KST-9 로 적습니다. UTC 보다 9시간 앞선 서울에 -9 가 붙는 셈입니다.

앞에서 본 IANA 시간대 데이터베이스에도 이 관습을 따르는 이름이 있습니다. 이 데이터베이스의 Etc/GMT-9 는 UTC 보다 9시간 앞선 시간대입니다. Etc/GMT+4 는 4시간 뒤처진 시간대입니다.

글자 모양이 UTC+9 와 비슷해서 부호를 뒤집어 읽기 쉽습니다. 이름 앞에 Etc/GMT 가 붙어 있으면 부호를 반대로 읽습니다.

관련 항목

이것이 속하는 상위 분류

시간과 시계 · 오프셋 · 국제화 · 지역화

오프셋이 차이를 재는 기준 시각

UTC · 그리니치 평균시 · 본초 자오선 · 국제원자시 · 윤초 · 타임스케일

오프셋을 시각 뒤에 붙여 적는 표기 규격

ISO 8601 · RFC 3339 · 타임스탬프 · RFC 2822 · HTTP 날짜

날짜마다 오프셋을 정해 주는 규칙

시간대 · 서머타임 · IANA 시간대 데이터베이스 · 표준시 · 한국 표준시 · TZ 환경 변수 · POSIX

오프셋을 함께 담는 시각 자료형

OffsetDateTime · ZonedDateTime · Instant · TIMESTAMP WITH TIME ZONE

오프셋 없이 순간 하나를 수로 세는 값

유닉스 시간 · 에포크 · time_t · 벽시계

다른 이름: UTC offset · 시간대 오프셋 · 타임존 오프셋