ISO 8601 날짜 형식: 국제 표준

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")