" src=https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Crystal_Clear_app_xmag.svg/16px-Crystal_Clear_app_xmag.svg.png decoding=async title="
YYYY-Www | 또는 | YYYYWww |
YYYY-Www-D | 또는 | YYYYWwwD |
Week date 표현은 위 박스에서 볼 수 있는 형식 중 하나다. YYYY
는 전통적인 그레고리력의 연도와는 살짝 다른 ISO 주수 연도를 가리킨다. Www
는 문자 W를 접두사로 하는 주수로, W01부터 W53까지며 월요일이 시작, 일요일이 끝이다.
01 주의 서로 대등하고 공존 가능한 명세가 존재:
그런 결과로, 1월 1일이 월요일, 화요일, 수요일 혹은 목요일에 있다면, 1월 1일은 01 주 내에 포함된다. 1월 1일이 금요일, 토요일 혹은 일요일이라면, 전년도의 52 주 혹은 53 주에 포함된다 (00주는 없다). 12월 28일은 항상 해당 연도의 마지막 주에 포함된다.
주수(week number)는 목요일을 카운트하여 기술 가능하다: 즉, 12 주는 연도의 12번째 목요일이다.
ISO 주수 매기기 연도는 01 주의 첫번째 날(월요일)에서 시작하며 새로운 ISO 연도 전의 일요일에 끝이 난다(그러므로 겹치거나 격차가 나지 않는다). 연도는 꽉찬 52 혹은 53 주로 구성된다. ISO 주수 매기기 연도의 번호는 (ISO 주수 매기기 이전 연도의 끝인) 전통적인 그레고리력 연도 시작점의 금, 토, 일 혹은 토, 일 혹은 그냥 일요일과 (ISO 주수 매기기 다음 연도의 01 주인) 전통적인 그레고리력 연도의 끝점의 월, 화, 수 혹은 월, 화 혹은 그냥 월요일의 전통 그레고리력 연도의 번호로부터 벗어난다. 목요일에 대해, ISO 주수 매기기 연도 번호는 항상 전통적인 그레고리력 연도 번호와 같다.
예:
주와 달 정의의 임의적인 특성이 도움이 되기보다는 장애물이 되는 경우, 예를 들자면 다른 달력에서 날짜들을 날짜를 비교하는 경우, 연중 일자가 간단하다. 위에서 표현한데로, [YYYY]는 연도를 가리킨다. [DDD]는 해당 연도의 일자를 001부터 365(윤년의 경우 366)까지로 나타낸다. 예를 들면, "1981-04-05"는 "1981-095"다.
이 형식은 날짜 시스템을 필요로 하지만 전체적인 달력 계산 소프트웨어가 꽤나 부담스러운 간단한 하드웨어 시스템에 사용된다. 이 시스템은 때때로 "율리우스일"로써 참조되는데, 이는 천문학의 율리우스일와 혼동을 일으킬 수 있다. 율리우스일은 Julian proleptic calendar의 기원전 4713년 1월 1일 그리니치 정오(혹은 연도 [0000]의 그레고리 proleptic calendar를 사용하는 ISO 날짜 -4713-11-24의 정오)로부터 날짜를 0부터 시작하여 차례대로 세는 것을 말한다.
hh:mm:ss.sss | 또는 | hhmmss.sss |
hh:mm:ss | 또는 | hhmmss |
hh:mm | 또는 | hhmm |
hh |
ISO 8601는 24시간 시계 시스템을 사용한다. 기본 형식은 [hh][mm][ss]이며 확장 형식은 [hh]:[mm]:[ss]다.
그래서 시간은 기본 형식인 "134630"으로 나타낼 수도 있고 확장 형식인 "13:47:30"와 같이 나타낼 수도 있다.
초 혹은 분과 초 모두, 시간을 더욱 더 간결하게 표현하기 위해 (하지만 정확도가 낮다) 기본 혹은 확장 시간에서 생략될 수도 있다: [hh]:[mm], [hh][mm] 그리고 [hh]는 결과적으로 정확도가 줄어든 시간 형식이 된다.
자정은 특별한 경우인데 "00:00" 또는 "24:00" 로도 참조될 수 있다. "00:00" 표기법은 달력 일자의 시작에서 사용되며 좀 더 많이 사용된다. 일자의 마지막에서는 "24:00"를 사용한다. "2007-04-05T24:00"는 "2007-04-06T00:00와 동일한 시점이다 (아래 혼합된 날짜와 시간 표현을 참고하라).
소수가 세 개의 시간 요소 중 어디에든 더해질 수 있다. 하지만, 소수는 표현 상에서 오직 가장 낮은 ��위의 시간 요소에 더해질 수 있다. 소수점인 쉼표 혹은 마침표(2003년 22번째 제네럴 컨퍼런스 CGPM에서 언급된데로 둘 중 우위는 없지만, ISO 8601:2004에 따르면 쉼표가 더 우선된다)는 시간 요소와 그것의 소수 사이의 구분자로써 사용될 수 있다. "14시, 30과 0.5분"을 표현하기 위해, 초 단위 표현을 포함하지 말라. "14:30,5", "1430,5", "14:30.5" 혹은 "1430.5"로 표현하라. 소수를 위한 소수점 이하 자릿수에 대한 제한은 없다. 하지만, 소수점 이하 자릿수는 통신 당사자들간의 합의를 필요로 한다.
<time>Z <time>±hh:mm <time>±hhmm <time>±hh |
ISO 8601의 표준 시간대는 (불특정 위치의) 지역 시간(local time), UTC 혹은 UTC의 오프셋으로써 표현된다.
만약 UTC 관계 정보에 시간 표현이 함께 주어지지 않는다면, 시간은 지역 시간으로 간주된다. 동일한 시간대에서 통신 시 지역 시간을 가정하는 것이 안전한 방법일지라도, 서로 다른 시간대 간의 통신에서 지역 시간을 사용하는 경우에는 애매모호할 수 있다. 단일 지리적 시간대 간조차도, 어떤 지역 시간은 해당 지역(region)이 일광 절약 시간(서머 타임, daylight saving time)을 준수하는 경우 애매모호해질 수 있다.
시간이 UTC인 경우, 시간 뒤에 빈칸없이 Z를 직접 추가해야 한다. Z는 오프셋이 0인 UTC를 위한 지역 지정자(zone designator)다. 그러므로 "09:30 UTC"는 "09:30Z" 혹은 "0930Z"로 표현된다. "14:45:15 UTC"는 "14:45:15Z" 혹은 "144515Z"가 될 수 있다.
UTC에서의 오프셋은 위에서 Z를 붙였던 것과 동일한 방법으로 ±[hh]:[mm], ±[hh][mm], 혹은 ±[hh] 형식의 시간 뒤에 덧붙인다. 그래서 기술 중인 시간이 UTC보다 한 시간 앞선다면 (겨울 동안의 베를린 지역의 시간처럼), 지역 지정자(zone designator)는 "+01:00", "+0100" 혹은 간단히 "+01"가 될 수 있다. UTC 너머의 시간을 표현하려면 음수의 오프셋을 사용한다. 예를 들어, 겨울 기간의 뉴욕 시간은 UTC−05:00이다. 다른 시간 오프셋을 알아보려면, UTC 시간 오프셋 목록을 참고하라. 음수 오프셋을 표현하기 위해, ISO 8601는 하이픈-마이너스 혹은 마이너스 기호 문자 사용을 지정하고 있다. 만약 상호교환 문자 세트가 제한되어 있거나 마이너스 기호 문자를 가지고 있지 않다면, 하이픈-마이너스가 사용되어야 할 것이다. ASCII는 마이너스 기호를 가지고 있지 않으므로, 하이픈-마이너스 문자 (코드는 십진수 45 혹은 16진수로 2D다)가 사용되어야 한다. 문자 세트가 마이너스 기호를 가지고 있다면, 해당 문자가 사용되어야 한다. Unicode는 마이너스 기호를 가지고 있고, 그것의 문자 코드는 U+2212 (16진수로 2212)다; HTML 문자 엔티티 호출은 −
다. 마이너스 기호 사용은 유사한 표준과 충돌을 일으키므로[출처 필요], ISO 8601 구현은 아마도 하이픈-마이너스와 마이너스 기호 문자 모두를 허용할 것이다[출처 필요].
다음의 모든 시간들은 동일한 순간을 참조한다: "18:30Z", "22:30+04", "1130−0700" 그리고 "15:00−03:30". 항해 시간대 문자는 Z 없이는 사용되지 않는다. UTC 시간을 계산하려면 지역시간에서 오프셋만큼을 빼야 한다. 즉 "15:00−03:30"는 15:00−(−03:30)을 해서 18:30 UTC를 얻게 된다.
추가로 특별한 표현인 "Z"를 갖는, 0 오프셋도 수치적으로 말하면 "+00:00", "+0000" 혹은 "+00"으로써 말할 수 있다. 하지만, "−00:00", "−0000" 혹은 "−00"처럼, 음수 기호로 수치적으로 표현하는 것은 허용되지 않는다. 기호 사용 지시 섹션 (표준의 2004년도판의 3.4.2 섹션)에서는 양수 혹은 0 값을 위해 플러스 기호가 사용되고, 음수 값을 위해 마이너스 기호가 사용되어야 한다고 언급하고 있다. ISO 8601의 프로파일과는 다르게, 이 규칙에 있어 대립하고 있는 RFC3339는 "-00"의 사용을 "+00"과 동일한 표시이지만 다른 함축적인 의미로 허용하고 있다.
ISO 8601은 문자 세트가 제한된 경우 하이픈 (-)을 마이너스 (−) 문자로 사용되는 것을 허용한다. 대조적으로, RFC 3339는 음수 오프셋을 표현하기 위해 하이픈 (-) 기호를 명시적으로 요구하며 마이너스 (−)기호의 사용은 허용하지 않는다.
<date>T<time> |
시간에서의 단일 포인트는 완전한 날짜 표현, 구분 문자 T 그리고 유효한 시간 표현을 연결하여 표현하는 것이다(예를 들자면, "2007-04-05T14:30"처럼).
표준 시간대 지정자가 요구된다면, 혼합된 일시를 따른다. 예를 들어, "2007-04-05T14:30Z" 혹은 "2007-04-05T12:30-02:00처럼 말이다.
기본 혹은 확장 형식 모두가 사용될 수 있으나, 날짜와 시간은 동일한 형식을 사용해야만 한다. 날짜 표현은 달력, 주, 혹은 서수(ordinal date)가 되어야 하며, 완전한 표현을 사용해야 한다. 시간은 정확도가 낮도록 지정된 형식을 사용하여 표현되어야 한다. 상호 간의 동의에 의해 'T' 문자를 생략 가능하다.
PnYnMnDTnHnMnS PnW P<date>T<time> |
기간(durations)는 시간 간격의 컴포넌트이며 시간 간격 내에서 시간 사이의 양을 정의한다. 표준에서 정하고 있는대로 시간 간격의 일부로써만 사용되어야 한다. 시간 간격은 다음 섹션에서 논지한다.
기간은 위에서 보이는 것처럼 P[n]Y[n]M[n]DT[n]H[n]M[n]S 혹은 P[n]W 형식으로 표현된다. 이와 같은 표현에서, [n]은 [n] 앞에 오는 각각의 날짜와 시간 요소들에 대한 값들로 대체된다. 0을 앞에 붙이는 것이 필수는 아니지만, 각 요소에 대한 최대 자릿수는 통신 당사자 간의 합의에 따른다. 대문자 P, Y, M, W, D, T, H, M 그리고 S는 각각의 날짜와 시간 요소를 위한 지정자이지만 대체되지는 않는다.
예를 들어, "P3Y6M4DT12H30M5S"는 "3년, 6개월, 4일, 12시간, 30분, 5초"의 기간을 나타낸다.
지정자를 포함하는 날짜와 시간 요소는 날짜, 시간 요소의 값이 0인 경우 생략될 수 있으며 더 낮은 순위의 요소도 더 낮은 정밀도를 위해 생략될 수 있다. 예를 들어, "P23DT23H"와 "P4Y"는 둘 다 허용될 수 있는 기간 표현이다.
모호함을 줄이기 위해, "P1M"은 한 달의 기간이며 "PT1M"은 1분의 기간을 말한다(T는 시간 값 앞에 오는 시간 지정자임을 알아두자). 소수점이 가장 작은 값으로 사용될 수 있어, "P0.5Y"는 반년을 나타낸다. 소수점은 "P0,5Y" 혹은 "P0.5Y"와 같이, 쉼표 혹은 마침표로 지정될 수 있다. 표준은 아래에서 주지하고 있는 것 외에 "carry over points"을 초과하고 있는 기간 표현에서의 날짜와 시간 값을 금지하지 않는다. 그래서 "PT36H"는 "P1DT12H"와 같은 기간을 나타내는데 사용될 수도 있다. 그러나 "PT36H"는 일광 절약 시간(서머 타임, daylight saving time)에서 혹은 으로 전환하는 경우 "P1DT12H"와 같지 않다는 것을 알아둬야 한다.
그 대신에, 혼합된 일시 표현에 기반한 기간 형식은 기본 형식인 PYYYYMMDDThhmmss 혹은 확장 형식 P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss] 중 하나를 통신 당사자 간의 합의에 의해 사용될 수 있다. 예를 들어, 위에서 보았던 첫번째 기간은 "P0003-06-04T12:30:05"가 될 수 있다. 하지만, 각각의 날짜와 시간 값은 그들의 계수를 초과할 수는 없다(예를 들어, 월은 13의 값, 시간은 25가 될 수 없다).
시간 간격은 두 시점 간의 간격을 잰 시간을 말한다. 시간 간격을 잰 양은 기간으로 표현된다(이전 섹션에서 기술한대로). 두 시점(시작과 끝)은 혼합된 일시 표현 혹은 단순히 날짜 표현으로 표현된다.
시간 간격을 표현하는데는 4가지 방법이 존재한다:
그 중 첫 3개는 보통 사선(좀 더 일반적으로는 포워드 슬래시 "/")인 간격 지정자에 의해 구분되는 두 값을 필요로 한다. 이 표준의 4.4.2 섹션은 다음을 주지하고 있다: "어떤 애플리케이션 분야의 경우 구분자를 위해 사선 대신 이중 하이픈이 사용된다." 표준에서 "이중 하이픈"을 정의하고 있지는 않지만, 이전 버전에서는 "2000-2002"와 같은 표기법을 사용했다. 사선 대신 이중 하이픈을 사용하는 것은 컴퓨터 파일 이름 내 포함을 가능하게 한다. 사선은 예약 문자로 일반적인 운영 체제에서의 파일 이름에서는 허용되지 않는다.
<시작>/<끝> 표현에 있어, 끝 값에서 어떤 요소가 빠진 경우, 시간대를 포함하는 시작 값과 동일한 것으로 간주된다. 표준 상에서 이 특징은 시간 간격 표현의 간결함을 위해 허용된다. 예를 들어, 시작과 끝 시간이 지정된 두 시간 짜리 회의 일시는 간단하게 "2007-12-14T13:30/15:30"으로 나타낼 수 있는데, "/15:30"은 (시작에서의 날짜와 동일하게) "/2007-12-14T15:30"을 의미하며, 월 단위 결제 기간의 시작과 끝 날짜를 "2008-02-15/03-14"로 나타낼 수도 있는데 여기서 "/03-14"는 (시작에서의 동일한 년도) "/2008-03-14"를 나타낸다.
시간 간격 표현 시 더 큰 정확도가 요구된다면, 좀 더 많은 시간 요소가 표현 상에 추가될 수 있다. "2007-11-13/15"라는 간격은 2007-11-13 날짜 상의 어떤 시간에서든 시작할 수 있으며 2007-11-15 날짜 상의 어떤 시간에서는 끝날 수 있는데, 그에 반해 "2007-11-13T09:00/15T17:00"은 시작과 끝 시간을 포함하고 있다. 시작과 끝 날짜의 모든 것을 명시적으�� 포함하려면, 간격은 "2007-11-13T00:00/15T24:00"처럼 표현되어야 한다.
Rnn/<interval> |
R/<interval> |
간격 반복하기는 "4.5 시간 간격 반복" 절에서 명시되고 있다. 이는 간격 표현의 시작에 "R[n]/"을 추가하여 만들어질 수 있는데 , R은 그 자체가 의미하는 문자로써 사용되며 [n]은 반복 횟수로 대체된다. [n] 값의 생략은 무한 반복을 의미한다. 간격이 (형식 1번과 2번처럼) 시작을 지정하고 있다면, 간격 반복을 위한 시작이다. 간격이 시작이 아닌 끝(3번 형식처럼)을 지정하고 있다면, 간격 반복의 끝을 말한다. 예를 들어, "2008-03-01T13:00:00Z"을 시작으로 "P1Y2M10DT2H30M" 간격을 5번 반복하려면, "R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M"을 사용한다.
ISO 8601:2000는 (동의에 의해) 날짜와 시간의 앞선 컴포넌트가 생략된 곳에서 끊기를 허용했다. 이는 확실히 2자리 숫자의 연도 사용과 애매모호한 형식 YY-MM-DD와 YYMMDD을 허용한다. 이 규정은 ISO 8601:2004에서 제거되었다.
인터넷 상에서, World Wide Web Consortium (W3C)는 에러율과 소프트웨어 복잡도를 줄이기 위해 제공된 날짜와 시간 형식을 제한하는 표준 프로파일을 정의하기 위해 ISO 8601를 사용한다.
RFC 3339는 인터넷 프로토콜과 표준에서의 사용을 위해 ISO 8601의 프로토콜을 정의한다. 해당 표준은 기원 이전에서의 기간과 날짜를 명시적으로 배제한다. 주 숫자와 서수 일자와 같은 좀 더 복잡한 형식은 허용되지 않는다.
RFC 3339는 ISO 8601가 금한, "-00:00"로 지정되는 0 시간대 오프셋 허용에 있어 구분된다. "+00:00" 혹은 0이 아닌 오프셋을 따르는 것이 오프셋 사용 시 선호됨에도 불구하고, RFC 3339는 선호되는 시간대를 말하는 것이 아니라는 함축된 의미를 전달하기 위해 "-00:00"을 지향한다. 이러한 "-00:00"을 따르는 관례는 이메일 헤더에서의 타임스탬프를 위해 RFC 3339를 사용하는 RFC 2822와 같은, 초기 RFC들로부터 파생되었다. RFC 2822는 타임스탬프 형식의 어떤 부분이든 ISO 8601에 일치한다는 것을 보장하지 않으므로, 충돌없이 이런 관례를 사용함에 있어 자유롭다.
ISO 8601는 여러 가지 명세들에 의해 참조되는데, ISO 8601 옵션의 전체 범주가 항상 사용되는 것은 아니다. 예를 들자면, TV, 디지털 라디오 등을 위한 여러 전자기기 프로그램 가이드 표준은 시간과 기간에서의 시점 기술을 위해 여러 가지 형식을 사용한다. ID3 오디오 메타 데이터 명세도 ISO 8601의 서브셋을 사용한다. GeneralizedTime은 ISO 8601의 또 다른 서브셋을 구성하고 있다.
2006년 현재로, ISO 8601 주간 날짜는 미국의 주요 브랜드 상업 패키징에서 기본 형식으로 채택됐다. 날짜 표기는 특정 브랜드보다는 특정 패키징, 통조림, 혹은 음료를 담는 공정 등에 의존적이다. 형식은 질적 보장을 위해 상당히 유용한데, 그로 인해 공정상의 오류들은 생산 주간까지 쉽게 추적될 수 있고, 생산품들은 리콜을 위해 정확하게 타켓팅될 수 있다.
ISO 8601와 관련된 Wikimedia Commons의 미디어
구현 개요