ISO 8601이란?
ISO 8601은 국제표준화기구(ISO)가 발행한 날짜 및 시간 데이터 표현을 위한 국제 표준입니다. MM/DD/YYYY(미국)와 DD/MM/YYYY(영국) 형식 간의 혼동을 없애는 명확하고 모호하지 않은 날짜 표기법을 정의합니다. 표준은 큰 단위 우선 방식을 사용합니다: 연 → 월 → 일 → 시 → 분 → 초.
날짜 형식
2024-03-01 # 달력 날짜 (YYYY-MM-DD) — 가장 일반적
2024-061 # 서수 날짜 (YYYY-DDD) — 2024년의 61번째 날
2024-W09-5 # 주 날짜 (YYYY-Www-D) — 9주차 금요일
시간 형식
14:30:00 # 현지 시간 (HH:MM:SS)
14:30:00Z # UTC (Z = Zulu = UTC)
14:30:00+09:00 # UTC 오프셋 (예: 한국 표준시 KST)
14:30:00.456Z # 밀리초 포함
날짜-시간 조합 (API에서 가장 일반적)
2024-03-01T14:30:00Z # UTC datetime (권장)
2024-03-01T14:30:00+09:00 # KST datetime
2024-03-01T14:30:00.456Z # 밀리초 포함
기간 형식
ISO 8601은 접두사 P로 시작하는 기간 표기법도 정의합니다:
P1Y2M3DT4H5M6S # 1년 2개월 3일 4시간 5분 6초
P30D # 30일
PT1H30M # 1시간 30분 (시간만 있는 기간은 PT로 시작)
ISO 8601을 사용해야 하는 이유
- 모호하지 않음: 03/04/05는 2005년 3월 4일, 2005년 4월 3일, 또는 2003년 5월 4일 중 어느 것일까요? ISO 8601은 해석이 하나뿐입니다.
- 정렬 가능: ISO 8601 문자열은 사전순으로 정렬하면 시간 순서가 됩니다 — 로그 파일과 데이터베이스에서 매우 중요합니다.
- 기계 가독성: 모든 주요 프로그래밍 언어에서 기본으로 파싱할 수 있습니다.
코드에서 파싱하기
# Python
from datetime import datetime
dt = datetime.fromisoformat("2024-03-01T14:30:00+09:00")
# JavaScript
new Date("2024-03-01T14:30:00Z")
# Go
time.Parse(time.RFC3339, "2024-03-01T14:30:00Z")