AI 보이는 추론 실험실

같은 순간인데 서울과 로스앤젤레스의 날짜는 왜 다를까요?

시간대 표시를 바꿔도 원래 순간은 같습니다. UTC 원본과 지역 달력 날짜, 변하지 않는 시간 값을 나란히 확인합니다.

입문게시 2026-10-25읽기·실험 약 11분확인 문제 2개규칙 기반 실행한국논리학협회 자체 제작제작·검수 LTCT 편집부

연구자가 두 탁상시계의 시각을 비교하고, 작은 공식 올리가 옆모습으로 한쪽 날개를 들어 시계를 가리키는 장면
주제 이해를 돕는 AI 생성 연출 사진 · 주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작
오늘의 질문

2026-01-01T00:30:00Z를 서울에서는 1월 1일, 로스앤젤레스에서는 12월 31일로 표시합니다. 원래 순간이 달라진 걸까요?

한 UTC 순간이 서울과 로스앤젤레스에서 서로 다른 달력 날짜로 표시되어도 시간 값은 같음을 보이는 관계도
한 UTC 순간이 서울과 로스앤젤레스에서 서로 다른 달력 날짜로 표시되어도 시간 값은 같음을 보이는 관계도 · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

시각 끝의 Z는 무엇을 약속하나요?

2026-01-01T00:30:00Z는 UTC 기준 2026년 1월 1일 0시 30분을 뜻합니다. 끝의 Z는 UTC라는 기준을 명시합니다. 같은 숫자에 시간대 설명이 없으면 어느 지역의 시계를 읽은 것인지 알기 어렵습니다.

이 활동은 Z 또는 UTC 오프셋을 포함한 세 개의 완전한 시각만 제공합니다. 사용 중인 컴퓨터의 기본 시간대를 추측하지 않고, 표시할 도시도 명시적으로 고릅니다.

참고 · MDN Web Docs — Date가 보관하는 시간 값 ↗

02

같은 순간을 두 도시에서 어떻게 읽나요?

이 순간의 서울 시각은 2026년 1월 1일 09:30입니다. 로스앤젤레스에서는 2025년 12월 31일 16:30입니다. 날짜뿐 아니라 연도도 다르지만 두 표시는 같은 순간을 가리킵니다.

자바스크립트의 Date는 그 순간을 나타내는 시간 값을 보관합니다. Intl.DateTimeFormat의 timeZone을 바꾸면 그 값을 다른 지역 달력과 시계로 표현합니다. 이 표시 작업이 원래 순간을 앞으로나 뒤로 이동시키지는 않습니다.

참고 · MDN Web Docs — 시간대를 지정하는 날짜 표시 ↗

03

무엇이 변하지 않았는지 어떻게 확인하나요?

활동에는 원본 UTC 시각과 getTime() 값을 함께 표시합니다. UTC·서울·로스앤젤레스를 눌러 날짜가 바뀌는 동안 getTime()이 같은지 확인하세요. 이 값은 1970년 1월 1일 00:00 UTC부터 센 밀리초 수입니다.

이번에는 다른 ‘원본 순간’을 고르면 getTime()도 달라집니다. 시간대만 바꾼 경우와 원본 순간을 바꾼 경우를 비교하면 두 조작이 서로 다른 일을 한다는 점이 드러납니다.

참고 · MDN Web Docs — Date가 보관하는 시간 값 ↗

04

왜 ISO 문자열의 앞 열 글자만 잘라서는 부족한가요?

toISOString()은 UTC 기준으로 표현합니다. 그 앞의 YYYY-MM-DD를 잘라 얻은 날짜는 UTC 날짜이지 언제나 사용자의 지역 날짜는 아닙니다. 예를 들어 2026-10-24T15:30:00Z는 서울에서 이미 10월 25일 00:30입니다.

한국 날짜별로 글을 묶거나 행사를 표시하려면 먼저 Asia/Seoul로 형식화한 달력 날짜를 사용해야 합니다. 이미 특정 날짜 자체를 뜻하는 자료와 시점을 지역 날짜로 바꾸는 일도 구별합니다. 생일처럼 시각 없는 달력 날짜를 무조건 UTC 순간으로 바꾸는 것은 별도 설계 문제입니다.

05

도시의 시차를 늘 같은 숫자로 두어도 되나요?

로스앤젤레스는 여름시간제를 적용하므로 날짜에 따라 UTC와의 차이가 달라집니다. 신년 사례에서는 UTC보다 8시간 늦고, 활동의 7월 사례에서는 7시간 늦게 표시됩니다. 서울은 이 사례들에서 UTC보다 9시간 빠릅니다.

따라서 도시를 다룰 때는 고정 숫자만 더하는 대신 IANA 시간대 이름과 해당 날짜의 규칙을 사용합니다. 이 활동의 출력은 브라우저 시간대 자료에 따른 형식화이며, 미래의 법이나 지역 규칙이 영구히 유지된다는 보장은 아닙니다.

참고 · MDN Web Docs — 시간대를 지정하는 날짜 표시 ↗

직접 확인하기 · 규칙 기반 실행

표시 시간대와 원본 순간을 따로 바꿔 볼까요?

Intl.DateTimeFormat을 실제 실행합니다. 모든 원본 순간에 Z가 있고 브라우저의 기본 시간대에 의존하지 않습니다.

순간을 고정하고, 달력만 바꿔 볼까요?

서울

2026-01-01

09:30

로스앤젤레스

2025-12-31

16:30

시각은 같은 한 순간이지만 달력의 날짜는 다릅니다.

UTC 표시: 2026-01-01T00:30:00.000Z

같은 순간의 getTime(): 1767227400000ms

toISOString().slice(0, 10): 2026-01-01 (UTC의 날짜)

실제 Intl.DateTimeFormat에 IANA 시간대를 지정합니다. 지역 표시를 바꿔도 같은 순간의 밀리초 값은 그대로입니다. 로스앤젤레스는 이 예시의 겨울에는 UTC−8, 여름에는 UTC−7을 적용하므로 연중 같은 시간을 더하거나 빼는 방식으로 대신할 수 없습니다.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1UTC 2026-01-01 00:30과 같은 순간의 로스앤젤레스 날짜는?
2같은 Date를 서울과 UTC 형식으로 표시할 때 getTime()은?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

저장 위치를 확인하고 있습니다…

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. 시간대를 지정하는 날짜 표시 ↗MDN Web DocsIntl.DateTimeFormat

    timeZone 옵션·formatToParts와 날짜 표시 · 2026-10-25 확인. 예시·계산·활동은 자체 구성.

  2. Date가 보관하는 시간 값 ↗MDN Web DocsDate

    UTC 시간 값과 지역 표시의 구별 · 2026-10-25 확인. 예시·계산·활동은 자체 구성.