ISO 8601 은 날짜와 시간의 표기에 관한 국제 표준이다.

날짜와 시간을 나타낼 때, 누가 보아도 정확한 시간을 알 수 있도록 만들어 놓은 표준이다.

예를 들어, 여러개의 Time Zone 을 가진 나라가 있다면 (ex. USA) 하나의 로그파일을 분석 할 때, 각각의 Time zone에 맞춰서 로그를 분석하려고 하기때문에 여러가지 문제가 발생할 것이다.이런 경우 ISO 8601 표기에 맞춰 로그 시간을 표시한다면 해결책이 될 수 있다.

날짜의 경우, 우리가 평소에 쓰던 방식과 크게 다르지 않는데, 시간의 경우 조금 다르게 표시한다.
어떻게 시간을 표시할까? 생각보다 ISO 8601의 표기법은 간단하다.

다음은 Wikipedia 에서 가져온 ISO 8601 의 내용중 시간 표시에 관한 부분이다.

시간

시간의 표기에는 쌍점을 쓴 hh:mm:ss(확장 형식) 또는 hhmmss(기본 형식)를 사용한다. hh는 시(時)로서 00부터 24까지의 값을 갖는다.
mm은 분(分)으로서 00부터 59까지의 값을 갖는다. ss는 초(秒)로서 00부터 59까지의 값을 갖는다. 
반점이나 온점을 써서 앞 단위를 나눈 시간을 나타낼 수도 있는데, 이때 십진수를 사용하며 자릿수는 정보 교환 주체 사이에 미리 합의해야 한다. 
다음은 분절 시간 표현 자릿수로 한 자리를 정한 예이다.

    10:20:30,4 또는 102030,4 : 10시 20분 30.4초
    10:30,5 또는 1030,5 : 10:30:30과 같다.
    10.5 : 10:30와 같다.

날짜와 함께 표기할 때

날짜와 시간 사이에 T를 넣어 표기한다.

    1981-02-22T09:00:00 : 1981년 2월 22일 09:00

시간대 표기

UTC 시간대에서는 시각 뒤에 Z를 붙인다.

    1981-02-22T09:00Z 또는 19810222T1200Z : UTC 시간대에서의 1981년 2월 22일 오전 9시

UTC외의 시간대에서는 시각 뒤에 ±hh:mm, ±hhmm, ±hh를 덧붙여 쓴다.

    1981-02-22T09:00:00+09:00 : UTC+9 시간대에서의 1981년 2월 22일 오전 9시

우리 나라에서만 서비스하는 시스템이라면 굳이 ISO 8601 표기를 따르지 않아도 상관없다.
하지만 만약 다른 나라에서도 사용하는 시스템을 개발하고 그 시스템을 유지보수해야 하는 과정에서 Time zone 과 관련된 문제가 나타난다면 ISO 8601은 그 해답이 될 수 있겠다.

참조 : http://ko.wikipedia.org/wiki/ISO_8601

Tags:

Leave a Reply