Basic

[Basic] UTC / ISO 8601 / RFC 3339

이예짜니 2022. 5. 21. 19:53

1. UTC (협정세계시)

1972년 1월 1일부터 세계 공통으로 사용하고 있는 협정세계시는 국제적인 표준 시간의 기준으로 쓰이는 시각이다.

 

UTC는 그레고리력의 표기를 따른다.
1일은 24시간으로 나뉘며, 1시간은 60분으로 나뉜다.
1분은 60초로 나뉘는 것이 보통이나 약간은 가변적이다.
UTC의 하루는 보통 86,400초이다.

 

UTC는 그리니치 평균시(GMT)에 기반하므로 GMT로도 불리기도 하는데, UTC와 GMT는 초의 소숫점 단위에서만 차이가 나기 때문에 일상에서는 혼용된다. 기술적인 표기에서는 UTC가 사용된다.
다만, 영국(특히 BBC)에서는 아직도 UTC가 아닌 GMT(런던의 그리니치천문대 평균시)라는 표현을 더 선호하는데 이는 UTC+0이 기존의 그리니치 표준시를 토대로 한 것이며, 그리니치 천문대가 있는 곳이 다름아닌 영국 그리니치이기 때문이다.

 

한국은 UTC+9 시간대에 속하므로 UTC 시간에 +9를 해주면 한국 환산 시간이 나온다.

예시로 UTC 03:00은 한국 기준으로는 오후 12:00 이다. 즉, 한국 시계가 협정 세계시보다 아홉 시간 빠르다.

 

2. ISO 8601

ISO 8601은 날짜와 시간과 관련된 데이터 교환을 다루는 국제 표준이다.


이 표준의 목적은 날짜와 시간을 표현함에 있어 명백하고 잘 정의된 방법을 제공함으로써, 날짜와 시간의 숫자 표현에 대한 오해를 줄이고자함에 있는데, 숫자로 된 날짜와 시간 작성에 있어 다른 관례를 가진 나라들간의 데이터가 오갈때 특히 그렇다.

특징

  • 날짜와 시간 값은 시간 단위의 가장 큰 것부터 가장 작은 것으로 정렬된다.
    년도, 월(혹은 주), 일, 시, 분, 초, 그리고 초보다 더 작은 단위.
  • 날짜와 시간은 각각 앞에 0을 붙여서(leading zeros) 유지해야 하는 고정된 자릿수(fixed number of digits)를 갖는다.

날짜 표기

이 표준은 민간 사용을 위한 국제 표준을 지원하는 그레고리력을 사용한다.

 

YYYY-MM-DD 또는 YYYYMMDD
YYYY-MM
--MM-DD 또는 --MMDD
예) 1992-08-20 또는 19920820 : 1992년 8월 20일

시간 표기

24시간 시계 시스템을 사용한다.
날짜와 시간을 함께 표기할 때에는, 날짜와 시간 사이에 T를 넣어 표기한다.

 

hh:mm:ss.sss 또는 hhmmss.sss
hh:mm:ss 또는 hhmmss
hh:mm 또는 hhmm
예) 1992-08-20T09:00:00 : 1992년 8월 20일 09:00

시간대 표기

시간이 UTC인 경우,
시간 뒤에 빈칸없이 Z를 직접 추가해야 한다.
예) 1992-08-20T09:00Z 또는 19920820T0900Z : UTC 시간대에서의 1992년 8월 20일 오전 9시

 

시간이 UTC가 아닌 경우,
시간 뒤에 +- hh:mm, +- hhmm, +- hh 형식의 시간을 덧붙인다.
예) 1992-08-20T09:00:00+09:00 : UTC+9 시간대에서의 1992년 8월 20일 오전 9시

 

UTC 기준 +는 빠르고, -는 느린 시간을 의미한다.
예) 1992-08-20T09:00:00+09:00 와 1992-08-20T00:00:00Z 는 동일한 시간이다.

 

3. RFC 3339

RFC 3339는 인터넷 프로토콜과 표준에서의 사용을 위해 ISO 8601의 프로토콜을 정의한다.


일반적인 포맷에서는 비슷히지만,
RFC 3339는 날짜와 시간 사이 공백이나 언더바(_)를 허용하고, 시간대 표기에서 -00:00를 허용한다.

 

RFC 3339 vs ISO 8601

Format Now RFC 3339 ISO 8601
%Y-%M-%DT%h:%m:%sZ 2022-05-21T10:25:51Z
%Y-%M-%DT%h:%m:%.1sZ 2022-05-21T10:25:51.9Z
%Y-%M-%DT%h:%m:%.2sZ 2022-05-21T10:25:51.99Z
%Y-%M-%DT%h:%m:%.3sZ 2022-05-21T10:25:51.991Z
%Y-%M-%DT%h:%m:%s.%uZ 2022-05-21T10:25:51.991000Z
%Y-%M-%DT%h:%m:%s%Z:%z 2022-05-21T19:25:51+09:00
%Y-%M-%DT%h:%m:%.3s%Z:%z 2022-05-21T19:25:51.991+09:00
%Y-%M-%DT%h:%m:%s.%u%Z:%z 2022-05-21T19:25:51.991000+09:00
%Y-%M-%D %h:%m:%s%Z:%z 2022-05-21 19:27:19+09:00  
%Y-%M-%DT%h:%m:%.3s-00:00 2022-05-21T10:29:06.983-00:00  
%Y-%M-%DT%h:%m:%s+08:45 2022-05-21T19:14:06+08:45
%Y-%M-%DT%h:%m:%s+00:00 2022-05-21T10:29:06+00:00
%Y-%M-%DT%h:%m:%.3s+00:00 2022-05-21T10:29:06.983+00:00

 


참고

UTC

ISO8601

RFC 3339

RFC 3339 vs ISO 8601