RFC 3339 vs ISO 8601
RFC 3339와 ISO 8601은 날짜 및 시간 데이터를 표현하기 위해 사용되는 표준이다. ISO 8601은 광범위한 날짜/시간 표기법을 포괄하는 국제 표준이며, RFC 3339는 인터넷 프로토콜에서의 사용을 목적으로 ISO 8601의 복잡성을 줄이고 규칙을 엄격하게 제한한 프로파일(Profile)이다.
두 표준의 구체적인 차이점은 다음 표와 같다.
| 비교 항목 (Feature) | ISO 8601 | RFC 3339 |
|---|---|---|
| 제정 기관 | 국제표준화기구 (ISO) | 국제인터넷표준화기구 (IETF) |
| 목적 및 범위 | 일반적인 날짜 및 시간 데이터 교환을 위한 광범위한 규칙 제공 | 인터넷 환경(API, 시스템 로그 등)을 위한 구체적이고 제한적인 규칙 제공 |
| 구분자 (Separators) | 기본 형식(구분자 없음, 예: YYYYMMDD) 및 확장 형식(구분자 있음, 예: YYYY-MM-DD) 모두 허용 | 확장 형식만 허용 (하이픈 - 및 콜론 : 사용 필수) |
| ‘T’ 문자 사용 | 날짜와 시간 사이에 ‘T’ 사용 필수 (당사자 간 상호 합의 시 생략 가능) | 날짜와 시간 사이에 ‘T’ 사용 필수 (단, 가독성을 위해 공백 문자로 대체하는 것 허용) |
| 시간대 (Timezone) | Z, ±hh, ±hhmm, ±hh:mm 형식 허용 | Z 또는 ±hh:mm 형식만 허용 (분 단위 표기 필수). 로컬 시간대를 모름을 의미하는 -00:00 표기 허용 |
| 연도 (Year) 표현 | 4자리 연도가 기본. 상호 합의 하에 확장 연도(5자리 이상) 및 음수(기원전) 표기 허용 | 4자리 연도(0000~9999)만 엄격하게 허용 |
| 주(Week) 및 일차(Ordinal) | YYYY-Www-D (주차), YYYY-DDD (연중 일차) 등의 형식 지원 | 지원하지 않음 (YYYY-MM-DD의 달력 형식만 지원) |
| 소수점 이하 표현 | 시간, 분, 초 단위 중 가장 마지막 단위에 소수점 사용 가능 | 초(Seconds) 단위에만 소수점 사용 가능 |
| 소수점 기호 | 쉼표(,)를 권장하며 마침표(.)도 허용 | 마침표(.)만 소수점 기호로 허용 |
| 윤초 (Leap Second) | 지원함 (23:59:60) | 지원함 (23:59:60) |
Sources:
- IETF. “RFC 3339: Date and Time on the Internet: Timestamps”. https://datatracker.ietf.org/doc/html/rfc3339
- ISO. “ISO 8601: Date and time format”. https://www.iso.org/iso-8601-date-and-time-format.html
- W3C. “Date and Time Formats” (Submitted to W3C, based on ISO 8601). https://www.w3.org/TR/NOTE-datetime