지식 · 날짜와 시간
ISO 8601 날짜 형식이란 무엇인가요?
핵심 답변
ISO 8601은 날짜와 시간을 텍스트로 쓰는 국제 표준입니다. 기본 형식은 큰 단위부터 작은 단위 순으로, 날짜는 2026-10-14, UTC 오프셋이 붙은 시점은 2026-10-14T09:30:00+02:00처럼 씁니다. 2026-W42-3 같은 주차 날짜, 연중 일수 날짜, P3DT4H 같은 기간도 정의합니다. 모호하지 않고 알파벳순 정렬이 곧 시간순이 되므로 대부분의 API와 데이터 포맷이 이 형식을 씁니다.
왜 YYYY-MM-DD인가
03/04/2026은 세계 대부분에서 4월 3일이지만 미국에서는 3월 4일입니다. ISO 8601은 연, 월, 일 순서 하나로 고정하고 연도는 네 자리, 월과 일은 0을 채운 두 자리로 써서 추측할 필요를 없앱니다.
또 다른 장점은 정렬입니다. YYYY-MM-DD 형식의 문자열은 알파벳순으로 정렬해도 날짜 순서와 같으므로, 2026-10-14-report.pdf 같은 파일 이름은 어느 폴더에서든 올바르게 정렬됩니다.
| 형식 | 확장형(구분자 있음) | 기본형(압축) |
|---|---|---|
| 달력 날짜 | 2026-10-14 | 20261014 |
| 연중 일수 날짜 | 2026-287 | 2026287 |
| 주차 날짜 | 2026-W42-3 | 2026W423 |
| 시각 | 09:30:00 | 093000 |
| UTC 날짜와 시간 | 2026-10-14T09:30:00Z | 20261014T093000Z |
| 오프셋이 있는 날짜와 시간 | 2026-10-14T11:30:00+02:00 | 20261014T113000+0200 |
시간, 시간대, 그리고 Z
시간은 날짜 뒤에 T를 두고 씁니다. 시는 24시간제이며, 초의 소수 부분은 소수점 뒤에 씁니다: 09:30:00.250.
Z("줄루"로 읽음)는 UTC 시간이라는 뜻입니다:2026-10-14T09:30:00Z.+02:00이나-05:00같은 오프셋은 현지 시간이 UTC와 얼마나 차이 나는지 알려 줍니다.2026-10-14T11:30:00+02:00은 위의 UTC 예시와 같은 순간입니다.Z도 오프셋도 없는 시간은 시간대를 알 수 없는 현지 시간입니다. ISO 8601로는 유효하지만, 다른 시스템은 어느 순간인지 알 수 없습니다.
오프셋은 시간대가 아닙니다. +01:00은 겨울의 파리일 수도, 1년 내내의 라고스일 수도 있습니다. ISO 8601은 오프셋만 기록하며, 시간대 규칙은 IANA 시간대 데이터베이스처럼 다른 곳에서 가져옵니다.
주차 날짜와 주 번호
ISO 주는 월요일에 시작하며, 1주차는 그해 첫 번째 목요일이 들어 있는 주(같은 말로, 1월 4일이 들어 있는 주)입니다. 주차 날짜는 연도, W, 주 번호, 그리고 1(월요일)부터 7(일요일)까지의 요일 순으로 씁니다.
주가 연도 경계에서 쪼개지지 않으므로, ISO 주 기준 연도는 연말연시에 달력 연도와 다를 수 있습니다.
| 달력 날짜 | ISO 주차 날짜 | 이유 |
|---|---|---|
| 2021-01-01 (금요일) | 2020-W53-5 | 2020년 12월 28일 월요일에 시작한 주에 속함 |
| 2024-12-30 (월요일) | 2025-W01-1 | 그 주에 2025년 1월 2일 목요일이 포함됨 |
| 2026-01-01 (목요일) | 2026-W01-4 | 1월 1일 자체가 목요일 |
| 2027-01-01 (금요일) | 2026-W53-5 | 2026년은 목요일에 시작하므로 53주 |
한 해는 ISO 기준 52주 또는 53주입니다. 일요일에 시작하고 1월 1일이 항상 1주차인 미국식 달력의 주 번호는 ISO 주 번호와 1 차이 날 수 있습니다.
기간과 구간
기간은 P(period)로 시작합니다. 날짜 부분이 먼저 오고, 그다음 T, 그리고 시간 부분이 옵니다. 0인 부분은 생략할 수 있습니다.
| 기간 | 의미 |
|---|---|
P3DT4H | 3일 4시간 |
PT30M | 30분 |
P30M | 분이 아니라 30개월: T가 중요함 |
P1Y2M10D | 1년 2개월 10일 |
P2W | 2주 |
PT0.5S | 0.5초 |
구간은 두 부분을 슬래시로 잇습니다: 2026-10-14/2026-10-20(시작과 끝), 2026-10-14T09:00Z/PT2H(시작과 기간), P1D/2026-10-14(기간과 끝). 연과 월 단위 기간은 초로 환산한 길이가 고정되어 있지 않으므로, 소프트웨어는 고정된 초 수가 아니라 달력 기준으로 더합니다.
RFC 3339: 웹을 위한 엄격한 프로파일
ISO 8601은 변형을 많이 허용해 완전한 파서를 만들기가 복잡합니다. RFC 3339는 인터넷 프로토콜용 프로파일 하나를 골랐으며, 대부분의 JSON API, Atom 피드, 로그 포맷이 이를 따릅니다.
- 날짜와 시간이 모두 있어야 하며 항상 확장형으로 씁니다:
2026-10-14T09:30:00Z. - 모든 타임스탬프에는
Z나+02:00같은 숫자 오프셋이 있어야 하며, 오프셋 없는 현지 시간은 허용되지 않습니다. - 주차 날짜, 연중 일수 날짜, 기간은 이 프로파일에 포함되지 않습니다.
-00:00은 시간이 UTC이지만 원래 현지 오프셋을 알 수 없다는 뜻입니다.- RFC는 가독성을 위해
T대신 공백을 써도 된다고 언급하며, 많은 데이터베이스가 이 형식으로 출력합니다.
자주 묻는 질문
ISO 8601 날짜의 T는 무슨 뜻인가요?
2026-10-14T09:30:00처럼 T는 날짜와 시간을 구분합니다. RFC 3339는 가독성을 위해 그 자리에 공백도 허용합니다.
타임스탬프 끝의 Z는 무슨 뜻인가요?
Z는 오프셋이 0인 UTC 시간이라는 뜻입니다. 09:30:00Z와 09:30:00+00:00은 같은 순간입니다.
ISO 8601과 RFC 3339는 같은 건가요?
RFC 3339는 인터넷용으로 더 엄격하게 정한 ISO 8601의 부분 집합입니다. 모든 RFC 3339 타임스탬프는 유효한 ISO 8601이지만, ISO 8601은 주차 날짜나 기간처럼 RFC 3339가 허용하지 않는 형식도 허용합니다.
ISO 8601에서 1주차는 어느 주인가요?
1주차는 그해 첫 번째 목요일이 들어 있는 월요일~일요일 주입니다. 그래서 1월 1일이 전년도의 52주차나 53주차에 속할 수 있습니다.