2026-09-26T15:30:45Z는 한국 시각으로 9월 27일 오전 0시 30분 45초입니다
ISO 8601 시각 끝에 붙은 Z는 UTC(협정 세계시)를 뜻하고, 한국 표준시(KST)는 UTC보다 9시간 빠릅니다. 그래서 Z가 붙은 시각에 9시간을 더하면 한국 시각이 되며, UTC로 15시부터 자정 전까지의 시각은 한국에서 이미 다음 날입니다. 반대로 끝이 +09:00인 값은 처음부터 한국 시각이므로 9시간을 더하지 않습니다.
위 변환기의 칸에 날짜·시각 글자를 붙여 넣으면 어떤 형식인지 알아서 읽고, 날짜·시각·소수 초·시간대가 각각 어느 부분인지 색으로 나누어 보여 줍니다. 답 아래의 띠는 UTC의 하루와 한국의 하루를 같은 시간축에 겹쳐 그려서, 어디에서 날짜가 바뀌는지와 한국 날짜 하루가 UTC로 언제부터 언제까지인지를 함께 보여 줍니다. 로그를 여러 줄 붙여 넣으면 시각이 적힌 곳만 한꺼번에 한국 시각으로 바꿀 수도 있습니다.
UTC로 적힌 시각을 한국 시각으로 바꿔야 하는 순간
서버와 프로그램은 시각을 주고받을 때 지역에 따라 달라지지 않는 UTC나 오프셋이 붙은 ISO 8601 글자를 자주 씁니다. 사람이 그 값을 읽고 한국에서 몇 시였는지 판단해야 할 때 이 변환이 필요합니다.
- API·JSON 응답을 확인할 때:
"createdAt": "2026-09-26T15:30:45.123Z"처럼 Z로 끝나는 값은 UTC입니다. 고객 문의의 '어젯밤 0시 30분 주문'과 같은 건인지 맞춰 보려면 한국 시각으로 바꿔야 합니다. - 서버 로그를 읽을 때: 서버 시계를 UTC로 맞춰 두면 로그도
[26/Sep/2026:15:30:45 +0000]처럼 UTC로 찍힙니다. 장애 시각을 한국 시각으로 바꿔야 다른 기록과 순서를 맞출 수 있습니다. - 메일·HTTP 헤더를 볼 때:
Date: Sat, 26 Sep 2026 15:30:45 GMT처럼 요일과 영어 월 이름으로 적힌 값도 같은 순간을 가리킵니다. - 데이터베이스에서 한국 날짜 하루치를 찾을 때: UTC로 저장된 열에서 '9월 27일 주문'을 찾으려면 UTC 9월 26일 15시부터 9월 27일 15시 전까지를 조회해야 합니다. 위 띠 아래 줄이 이 범위를 SQL 조건으로 복사해 줍니다.
- 설정값을 UTC로 넣어야 할 때: 예약 발송·만료 시각을 ISO 8601 UTC로 받는 서비스에 한국 시각을 넣거나, AWS 서명처럼
20260926T153045Z꼴의 기본형을 만들어야 할 때입니다.
계산 방법: 적힌 오프셋을 빼서 UTC로 돌린 뒤 9시간을 더합니다
한국 시각 = 적힌 시각 − 적힌 오프셋 + 9시간
- 맨 끝의 시간대 표시를 찾습니다: Z(또는 +00:00)는 UTC, +05:30은 UTC보다 5시간 30분 빠른 곳, -04:00은 4시간 느린 곳의 시각입니다. 아무 표시도 없으면 어느 나라 시각인지 글자만으로는 알 수 없습니다.
- 오프셋을 빼서 UTC로 돌립니다: 2026-09-26T08:00:00+05:30은 8시에서 5시간 30분을 빼서 UTC 2시 30분입니다. 오프셋이 음수면 거꾸로 더합니다.
- UTC에 9시간을 더합니다: UTC 2시 30분은 한국 11시 30분입니다. 1988년 서머타임 기간처럼 한국의 오프셋이 +9가 아니었던 때는 그때의 값을 씁니다(한국 표준시의 변화).
- 24시를 넘으면 날짜를 하루 넘깁니다: UTC 15시 30분 + 9시간 = 24시 30분이므로 다음 날 0시 30분입니다. 거꾸로 한국 시각에서 9시간을 빼다가 0시 아래로 내려가면 전날이 됩니다.
소수 초는 시간대를 바꿔도 그대로입니다. 오프셋이 시·분 단위라서 초 아래 자리는 바뀌지 않기 때문입니다. 이 변환기도 .123이나 .123456789처럼 친 자리를 그대로 옮겨 적습니다.
ISO 8601 글자를 부분별로 읽는 법
| 부분 | 예 | 뜻 |
|---|---|---|
| 날짜 | 2026-09-26 | 연-월-일. 월과 일은 늘 두 자리로 적습니다. |
| 구분 | T | 날짜와 시각 사이의 구분 글자입니다. RFC 3339는 읽기 쉽게 공백을 쓰는 것도 허용합니다. |
| 시각 | 15:30:45 | 24시간제 시:분:초입니다. |
| 소수 초 | .123 | 초 아래 자리입니다. 3자리면 밀리초, 6자리면 마이크로초, 9자리면 나노초까지 적은 값입니다. |
| 시간대 | Z | UTC라는 뜻입니다. +00:00과 같은 순간입니다. |
| 시간대 | +09:00 | UTC보다 9시간 빠른 지역의 시각, 곧 한국 시각입니다. |
| 시간대 | -00:00 | UTC 시각은 맞지만 현지 시차는 모른다는 표시입니다. |
If the time in UTC is known, but the offset to local time is unknown, this can be represented with an offset of "-00:00".RFC 3339 4.3 Unknown Local Offset Convention. 같은 문서 5.6은 T와 Z를 소문자 t·z로 적어도 된다고 덧붙입니다.
이 변환기가 읽는 형식
칸에는 아래 형식을 그대로 붙여 넣으면 됩니다. 앞뒤 공백과 전각 숫자는 알아서 정리합니다.
| 형식 | 예 | 자주 보는 곳 |
|---|---|---|
| ISO 8601 확장형 (RFC 3339) | 2026-09-26T15:30:45.123Z | API·JSON 응답, 자바스크립트 toISOString() |
| 공백 구분·짧은 오프셋 | 2026-09-26 15:30:45.123+00 | PostgreSQL의 기본(ISO) 출력 |
| 시간대 없는 값 | 2026-09-27 00:30:45 | DB의 DATETIME 열, 엑셀에서 내려받은 표 |
| ISO 8601 기본형 | 20260926T153045Z | AWS 요청 서명 시각, 파일 이름 |
| HTTP 날짜 | Sat, 26 Sep 2026 15:30:45 GMT | HTTP Date·Last-Modified 헤더 |
| RFC 2822 이메일 날짜 | Sat, 26 Sep 2026 15:30:45 +0000 | 메일 원문의 Date 헤더 |
| 자바스크립트 Date 문자열 | Sat Sep 26 2026 15:30:45 GMT+0900 (한국 표준시) | 브라우저 콘솔의 String(new Date()) 출력 |
| date 명령 | Sat Sep 26 15:30:45 KST 2026 | macOS 터미널·C 로케일의 date 출력 |
| 웹 서버 로그 | 26/Sep/2026:15:30:45 +0000 | nginx·Apache 접근 로그(Common Log Format) |
| 연·월·일 숫자 표기 | 2026. 09. 26. (토) 15:30:45 KST | 2026/09/26 꼴 로그, 마침표로 적은 날짜 |
| 한국어 날짜 | 2026년 9월 27일 오전 0시 30분 | 문서·메신저에 적은 시각 |
| 숫자만 | 1790436645 | 유닉스 시간(자릿수로 초·밀리초를 가림) |
숫자만 다루는 일이 많다면 유닉스 타임스탬프 변환기가 단위 판별과 32비트 범위까지 더 자세히 보여 줍니다.
예시로 보는 변환
| 입력 | 한국 시각 | UTC | 날짜 |
|---|---|---|---|
2026-09-26T15:30:45.123Z | 2026-09-27 00:30:45.123 | 2026-09-26T15:30:45.123Z | 다음 날 |
2026-09-26T03:00:00Z | 2026-09-26 12:00:00 | 2026-09-26T03:00:00Z | 같은 날 |
2026-09-26T08:00:00+05:30 | 2026-09-26 11:30:00 | 2026-09-26T02:30:00Z | 같은 날 |
2026-09-26T20:00:00-04:00 | 2026-09-27 09:00:00 | 2026-09-27T00:00:00Z | 다음 날 |
2026-09-27T00:30:45+09:00 | 2026-09-27 00:30:45 | 2026-09-26T15:30:45Z | 이미 한국 시각 |
2026-01-01 00:15 (한국 시각으로 읽음) | 2026-01-01 00:15:00 | 2025-12-31T15:15:00Z | UTC는 전날 |
Sat, 26 Sep 2026 15:30:45 GMT | 2026-09-27 00:30:45 | 2026-09-26T15:30:45Z | 다음 날 |
2026-12-31T15:00:00Z | 2027-01-01 00:00:00 | 2026-12-31T15:00:00Z | 한국은 새해 |
1988-07-01T00:00:00Z | 1988-07-01 10:00:00 | 1988-07-01T00:00:00Z | 서머타임(+10:00) |
UTC 15시부터 한국은 다음 날입니다
한국 시각은 UTC보다 9시간 앞서므로 UTC 하루의 마지막 9시간(15:00~23:59)은 한국 날짜로 다음 날입니다. 거꾸로 말하면 한국 날짜 하루는 UTC로 전날 15시부터 그날 15시 전까지입니다.
| UTC | 00:00 | 03:00 | 06:00 | 09:00 | 12:00 | 15:00 | 18:00 | 21:00 |
|---|---|---|---|---|---|---|---|---|
| 한국 | 09:00 | 12:00 | 15:00 | 18:00 | 21:00 | 다음 날 00:00 | 다음 날 03:00 | 다음 날 06:00 |
그래서 데이터를 UTC 날짜로 묶어 집계하면 한국 오전 9시 전의 기록이 전날로 들어갑니다. 한국 날짜로 집계하려면 아래처럼 UTC 범위를 끝이 열린 구간으로 조회합니다.
-- 한국 시각 2026-09-27 하루치
WHERE created_at >= '2026-09-26T15:00:00Z'
AND created_at < '2026-09-27T15:00:00Z'
끝을 23:59:59로 닫으면 그 뒤의 소수 초(23:59:59.5 등)가 빠지므로 '다음 날 0시 미만'으로 적는 편이 안전합니다.
코드에서 한국 시각으로 바꾸기
프로그램 안에서는 9시간을 직접 더하기보다 시간대 이름(Asia/Seoul)을 주는 편이 옛 표준시·서머타임까지 맞게 처리합니다.
| 언어 | 코드 | 주의할 점 |
|---|---|---|
| 자바스크립트 | new Date('2026-09-26T15:30:45Z').toLocaleString('ko-KR', { timeZone: 'Asia/Seoul' }) | 오프셋이 없는 '2026-09-26T15:30'은 기기 시각으로, '2026-09-26'처럼 날짜만 있으면 UTC로 읽습니다. |
| 파이썬 3.11 이상 | datetime.fromisoformat('2026-09-26T15:30:45Z').astimezone(ZoneInfo('Asia/Seoul')) | 3.10 이하의 fromisoformat()은 끝의 Z를 읽지 못합니다. |
| SQL 조회 | created_at >= '2026-09-26T15:00:00Z' AND created_at < '2026-09-27T15:00:00Z' | 열이 시간대 없는 형식이면 저장할 때 어느 시간대였는지부터 확인합니다. |
When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.ECMA-262 21.4.1.32 Date Time String Format. 같은 글자라도 시각이 붙었는지에 따라 자바스크립트가 읽는 시간대가 달라집니다.
한국 표준시가 늘 +09:00이었던 것은 아닙니다
지금의 한국 표준시는 UTC+09:00이지만, IANA 시간대 자료(Asia/Seoul)에는 표준시가 바뀌거나 서머타임을 둔 기간이 기록돼 있습니다. 이 변환기는 그 기록을 따라 그때의 오프셋으로 계산합니다.
| 기간(서울 시각) | 오프셋 | 내용 |
|---|---|---|
| 1908-04-01 전 | +08:27:52 | 서울의 지방 평균시 |
| 1908-04-01 ~ 1911-12-31 | +08:30 | 표준시 도입 |
| 1912-01-01 ~ 1954-03-20 | +09:00 | 1948~1951년 여름은 서머타임 +10:00 |
| 1954-03-21 ~ 1961-08-09 | +08:30 | 1955~1960년 여름은 서머타임 +09:30 |
| 1961-08-10 ~ 지금 | +09:00 | 1987·1988년 여름은 서머타임 +10:00 |
가장 최근의 서머타임은 1988년 5월 8일 2시에 시계를 3시로 당겼다가 10월 9일 3시에 2시로 되돌린 기간입니다. 그래서 1988-05-08 02:30은 서울에 없는 시각이고, 1988-10-09 02:30은 두 번 있는 시각입니다. 시간대 없는 값을 이런 시각으로 넣으면 변환기가 어느 쪽으로 읽었는지 따로 알려 줍니다. 1908년 전처럼 오프셋에 초가 붙은 때는 RFC 3339·RFC 2822 표기가 시차를 분까지만 적을 수 있어 그 두 줄을 비워 둡니다.
자주 틀리는 경우
- +09:00 값에 9시간을 한 번 더 더하기: 2026-09-27T00:30:45+09:00은 이미 한국 시각입니다. 9시간을 더하면 엉뚱한 오전 9시 30분이 됩니다.
- 시간대 없는 값을 UTC로 여기기: 2026-09-27 00:30:45에는 시간대 정보가 없습니다. 저장한 프로그램이 한국 시각으로 썼는지 UTC로 썼는지 확인한 뒤 위 '시간대가 없는 값은' 설정을 고르세요.
- 날짜만 비교하기: UTC 날짜 9월 26일과 한국 날짜 9월 26일은 9시간 어긋난 서로 다른 하루입니다. 날짜별 통계는 어느 시간대 기준인지 먼저 정해야 합니다.
- Z와 -00:00을 구분하지 않기: 둘 다 UTC 시각이지만 -00:00은 현지 시차를 모른다는 뜻이 더해집니다. 메일 헤더의 -0000도 같은 뜻입니다(RFC 5322 3.3).
- CST·IST 같은 약어를 믿기: CST는 미국 중부 표준시(-06:00)와 중국 표준시(+08:00)를 모두 가리키고, IST는 인도·아일랜드·이스라엘이 함께 씁니다. 이 변환기는 RFC 5322가 값을 정한 미국 약어만 그 값으로 읽고, 여러 나라가 쓰는 약어는 숫자 오프셋으로 다시 적어 달라고 안내합니다.
한계
- 시간대 계산은 쓰는 브라우저에 들어 있는 IANA 시간대 자료를 따릅니다. 자료 판에 따라 아주 옛날이나 최근에 바뀐 지역의 오프셋이 다를 수 있습니다.
- 2026-W39-6 같은 주 번호 날짜, 2026-269 같은 연중 일수 날짜, 09/26/2026처럼 월·일 순서가 나라마다 다른 표기는 읽지 않습니다.
- 23:59:60 같은 윤초는 유닉스 시간에 없어서 다음 초 0초로 계산합니다.
- asctime 형식(Sat Sep 26 15:30:45 2026)은 HTTP 규격에서는 UTC로 보지만, 프로그램마다 현지 시각으로 찍기도 해서 '시간대가 없는 값은' 설정을 따릅니다.
- 소수 초는 나노초(9자리)까지 받습니다. 시간대 약어는 UTC·GMT·KST·JST·WIB·WITA·WIT·CET·CEST와 RFC 5322의 미국 약어만 읽습니다.
출처
- 01IETF RFC 3339: Date and Time on the Internet: Timestamps4.3 -00:00(현지 시차 모름), 5.6 date-time 문법·소문자 t·z와 공백 구분 허용, 5.7 윤초 60
- 02IETF RFC 5322: Internet Message Format3.3 date-time(요일은 날짜와 맞아야 함, -0000의 뜻), 4.3 옛 시간대 약어 UT·GMT·EST~PDT의 값
- 03IETF RFC 9110: HTTP Semantics, 5.6.7 Date/Time FormatsHTTP 날짜 IMF-fixdate 예 "Sun, 06 Nov 1994 08:49:37 GMT", asctime 형식은 UTC로 봄
- 04ECMA-262: 21.4.1.32 Date Time String Format오프셋 없는 날짜만은 UTC, 날짜·시각은 현지 시각으로 읽음. 21.4.4.41 Date.prototype.toString 형식
- 05Python 문서: datetime.fromisoformat3.11부터 대부분의 ISO 8601 형식을 읽음, 예 '2011-11-04T00:05:23Z' → UTC
- 06AWS: Signature Version 4 날짜 처리"The time stamp must be in UTC and use the following ISO 8601 format: YYYYMMDDTHHMMSSZ"
- 07nginx: ngx_http_log_module$time_local "local time in the Common Log Format"
- 08PostgreSQL 문서: 8.5.2 Date/Time OutputISO 스타일 출력 예 "1997-12-17 07:37:16-08"
- 09IANA Time Zone Databaseasia 파일의 Asia/Seoul 기록(1908·1912·1954·1961 표준시 변경, 서머타임 기간)
출처 확인일 2026-10-20. 시간대 자료는 해마다 여러 번 고쳐지며, 화면의 시각은 쓰는 브라우저에 들어 있는 판을 따릅니다.
자주 묻는 질문
ISO 날짜 끝의 Z는 무슨 뜻인가요?
Z는 그 시각이 UTC(협정 세계시)라는 표시입니다. 2026-09-26T15:30:45Z와 2026-09-26T15:30:45+00:00은 같은 순간입니다. RFC 3339는 Z를 소문자 z로 적는 것도 허용합니다.
UTC를 한국 시각으로 바꾸려면 몇 시간을 더하나요?
9시간을 더합니다. UTC 15시부터 자정 전까지는 9시간을 더하면 24시를 넘으므로 한국에서는 다음 날입니다. 다만 1987·1988년 여름 서머타임처럼 한국의 오프셋이 +10:00이었던 기간은 10시간을 더해야 하며, 변환기는 이런 기간을 IANA 시간대 자료로 반영합니다.
2026-09-26T15:30:45Z는 한국에서 언제인가요?
한국 시각으로 2026년 9월 27일 일요일 오전 0시 30분 45초입니다. UTC로는 9월 26일 토요일이지만 9시간을 더하면 자정을 넘기 때문에 한국 날짜가 하루 뒤입니다. RFC 3339로는 2026-09-27T00:30:45+09:00입니다.
끝이 +09:00이면 9시간을 또 더하나요?
아니요. +09:00은 'UTC보다 9시간 빠른 지역의 시각'이라는 뜻이라 그 값 자체가 이미 한국 시각입니다. 2026-09-27T00:30:45+09:00을 넣으면 변환기는 답으로 UTC 표기 2026-09-26T15:30:45Z를 보여 주고 '이미 한국 시각' 표시를 붙입니다.
한국 시각 2026년 1월 1일 0시 15분은 ISO UTC로 무엇인가요?
2025-12-31T15:15:00Z입니다. 한국 시각에서 9시간을 빼면 UTC로는 아직 2025년 12월 31일 15시 15분입니다. 한국 시각을 그대로 오프셋과 함께 적으면 2026-01-01T00:15:00+09:00입니다.
시간대가 없는 2026-09-27 00:30:45도 바꿀 수 있나요?
바꿀 수 있습니다. 글자만으로는 어느 시간대인지 알 수 없으므로 '시간대가 없는 값은' 설정에서 한국 시각으로 읽을지 UTC로 읽을지 고르면 됩니다. 기본은 한국 시각이며, 이때 답은 UTC 표기 2026-09-26T15:30:45Z입니다.
한국 날짜 하루치를 UTC로 저장된 데이터에서 찾으려면 어떻게 하나요?
한국 날짜 하루는 UTC로 전날 15시부터 그날 15시 전까지입니다. 한국 9월 27일이면 2026-09-26T15:00:00Z 이상, 2026-09-27T15:00:00Z 미만으로 조회합니다. 변환기 띠 아래의 'SQL 조건 복사'가 이 범위를 바로 복사해 줍니다.
로그 여러 줄의 시각을 한꺼번에 바꿀 수 있나요?
'여러 줄 한꺼번에 바꾸기'를 열고 로그를 붙여 넣으면 ISO 8601·HTTP 날짜·웹 서버 로그 형식처럼 시각이 적힌 곳만 찾아 한국 시각으로 바꿉니다. 그 자리에 바꿔 쓰거나 원래 값 뒤에 한국 시각을 덧붙일 수 있고, 날짜가 맞지 않는 값은 그대로 둡니다.
지금 UTC와 한국 시각을 볼 수 있나요?
칸 옆의 '지금'을 누르면 지금 시각이 UTC 형식으로 들어가고 1초마다 바뀝니다. 답에는 한국 시각이, 아래 띠에는 지금 순간이 표시됩니다. 다시 누르거나 칸에 글자를 치면 따라가기가 멈춥니다.
과거 한국 서머타임 날짜도 계산하나요?
계산합니다. 브라우저의 IANA 시간대 자료를 따라 1948~1951년·1955~1960년·1987~1988년 서머타임과 1954~1961년 +08:30 표준시를 반영합니다. 예를 들어 1988-07-01T00:00:00Z는 서머타임이 적용돼 한국 시각 오전 10시입니다.