시간에 관하여...

윤현묵·2022년 5월 25일
1

기타 지식들

목록 보기
1/1
post-thumbnail

세계 여행을 하다보면 각 나라별 시간이 달라 친구나 가족들에게 연락하기 곤란할 때가 발생하는데요, 세계 시간의 기준이 되는 협정 세계시(UTC)를 이해하면 시간에 대해 보다 정확하게 알 수 있습니다.

  • 협정 세계시(UTC)란?

    1972년 1월 1일부터 시행된 국제 표준시이며, 1970년 1월 1일 자정을 0 밀리초로 설정하여 기준을 삼아 그 후로 시간의 흐름을 밀리초로 계산합니다.

  • 협정 세계시(UTC)의 몰랐던 사실?

    • "UTC"는 보통 "Universal Time Code"나 "Universal Time Convention"의 약어로 알려지기도 하지만, 이것은 틀린 것 입니다.
      영어권의 사람들과 프랑스어권의 사람들은 각각 자신의 언어로 된 약자를 사용하길 원했고,
      영어권은 CUT(Coordinated Universal Time)을, 프랑스어권은 TUC(Temps Universel Coordonne)를 제안했으며, 결국 두 언어 모두 C, T, U로 구성되어 있는 것에 착안해 UTC로 약어를 결정하였습니다.

    • UTC는 그리니치 평균시(GMT)로 불리기도 하는데, UTC와 GMT는 초의 소숫점 단위에서만 차이가 나기 때문에 일상에서는 혼용되어 사용하며, 기술적인 표기에서는 UTC가 사용됩니다.
  • 협정 세계시(UTC)의 특징

    • UTC는 그레고리력의 표기를 따릅니다.
    • 1일은 24시간으로 나뉘며, 1시간은 60분으로, 1분은 60초로 나뉘는 것이 일반적입니다.
    • UTC의 하루는 보통 86,400초입니다. (24시간)

      그러나 실제 태양의 자전/공전으로 측정하는 태양시는 86,400초보다 약간 길기 때문에,
      UTC에서는 때때로 하루의 제일 마지막 1분을 61초로 계산하기도 합니다.
      이렇게 추가되는 초를 윤초라고 하고, 주로 12월 31일이나 6월 30일의 마지막에 추가합니다.

그리니치 평균시(Greenwich Mean Time, GMT)

런던(영국)을 기점으로 하고 웰링턴(뉴질랜드)을 종점으로 하는 협정 세계시의 기준 시간대

1972년 1월 1일부터 1970년 1월 1일을 기점으로 하는 협정 세계시(UTC)를 공식 표현으로 쓰지만 아직도 영국 BBC 방송을 중심으로 GMT란 표현은 널리 쓰이고 있습니다.
영국 런던에 소재한 그리니치 천문대를 기준으로하는 경도를 사용하기에 그리니치 천문대의 경도는 0.00이 되었습니다.

  • 세계 시간대 (서울 GMT+9)

    0:00GMT/LON(런던)GMT+0
    1:00PAR(파리)GMT+1
    2:00CAI/JRS(카이로/예루살렘)GMT+2
    3:00JED(제다)GMT+3
    3:30THR(테헤란)GMT+3.5
    4:00DXB(두바이)GMT+4
    4:30KBL(카불)GMT+4.5
    5:00KHI(카라치)GMT+5
    5:30DEL(델리)GMT+5.5
    6:00DAC(다카)GMT+6
    6:30RGN(양곤)GMT+6.5
    7:00BKK(방콕)GMT+7
    8:00HKG(홍콩)GMT+8
    9:00SEL(서울)GMT+9
    9:30ADL(다윈)GMT+9.5
    10:00SYD(시드니)GMT+10
    11:00NOU(누메아)GMT+11
    12:00WLG(웰링턴)GMT+12

  • ISO 8601(International Organization for Standardization)란?

    ISO 8601은 날짜와 시간의 표기에 관한 국제 표준 규격이며, 정식 명칭은 아래와 같습니다.
    Date elements and interchange formats - Information interchange - Representation of dates and times
    최신 버전인 ISO 8601:2004와 구버전인 ISO 8601:2000, ISO 8601:1988이 있습니다.

  • 날짜의 표기

    • ISO 8601에는 날짜의 표기에 그레고리력을 따릅니다.
    • 연을 표기할 때는 기원전 1년에 해당하는 0000부터 기원후 9999년에 해당하는 9999까지의 값을 사용할 수 있습니다.

      단, 율리우스력이 사용되던 0000년부터 1582년까지의 값은 정보 교환 시 상호 합의 하에 그레고리력으로 환산해야 합니다. 0000년 전이나 9999년 후의 표기도 역시 사용하는 주체간의 상호 합의가 필요합니다. 예를 들어, 연도 앞에 빼기표(-)를 붙이면 기원전 1년 이전, 더하기표(+)를 붙이면 기원전 1년 이후를 가리키는 식으로 합의할 수 있습니다.

    • 월의 표기는 01부터 12까지의 값을 가지며, 각각 1월부터 12월까지를 나타냅니다.
    • 일의 표기는 01부터 시작하며 달에 따라 28부터 31까지의 값을 가집니다.
    • 연중 일의 표기는 001부터 시작하며 해에 따라 365에서 366까지의 값을 가집니다.
    • 연중 주의 표기는 01부터 시작합니다.
    • 주중 일의 표기는 월요일을 1로 시작하여 순서대로 요일에 숫자를 붙이며, 일요일을 7로 지정합니다.
  • ISO 8601에 따라 날짜를 기록하는 방법 3가지

    • 연월일로 기록하는 방법

      -. YYYY-MM-DD(확장 형식) 또는 YYYYMMDD(기본 형식)으로 표기
      예) 2022-08-02 또는 20220802 : 2022년 8월 2일

    • 연과 연중 일수로 기록하는 방법

      -. YYYY-DDD(확장 형식) 또는 YYYYDDD(기본 형식)으로 표기
      -. DDD는 연중 날의 번호로 1월 1일이 001이며, 12월 31일은 평년은 365, 윤년은 366
      예) 2022-214 또는 2022214 : 2022년의 214번 째 날

    • 연과 주와 주중 일수로 기록하는 방법

      -. YYYY-Www-D(확장 형식) 또는 YYYYWwwD(기본 형식)으로 표기
      -. ww는 연중 주의 번호로, 해의 첫 주는 01, 마지막 주는 52 또는 53
      (단, 해의 첫 주는 그 해의 첫번째 목요일을 포함한 주로 지정)
      -. D는 요일을 나타내며, 월요일이 1, 일요일이 7
      예) 2022-W31-2 또는 2022W312 : 2022 31번째 주의 화요일

  • 시간의 표기

    • 시간의 표기에는 hh:mm:ss(확장 형식) 또는 hhmmss(기본 형식)을 사용
    • hh는 시를 나타내며 00부터 24까지의 값을 가지고, mm은 분으로 00부터 59까지의 값을, ss는 초로 00부터 59까지의 값을 갖음
    • 날짜와 시간을 함께 표기할 때에는, 날짜와 시간 사이에 T를 넣어 표기
      예) 2022-08-02T09:00:00 : 2022년 8월 2일 09:00
  • 시간대의 표기

    • 시간대를 표기할 때에는 Z또는 +/- 기호를 사용
    • UTC 시간대에서는 시각 뒤에 Z를 붙임
      예) 2022-08-02T09:00Z 또는 20220802T0900Z : UTC 시간대에서의 2022년 8월 2일 오전 9시
    • UTC 외의 시간대에서는 시각 뒤에 +- hh:mm, +- hhmm, +- hh를 덧붙여 표기
      예) 2022-08-02T09:00:00+09:00 : UTC+9 시간대에서의 2022년 8월 2일 오전 9시
    • +가 붙으면, UTC의 시각보다 더 "빠르다"다는 의미이며, 반대로 -는 느리다는 것을 의미
      예를 들어, 2022-08-02T09:00+09:00 는 2022-08-02T00:00Z와 동일
      즉, UTC+9 시간대에서는 오전 9시이지만, UTC 시간대에서는 오전 0시
  • 기간의 표기
    • 기간을 나타낼 때에는 시작일시/종료일시로 표기
      예) 2022-08-02/2022-10-23,
      2022-08-02T09:00:00+09:00/2022-10-23T17:00:00+09:00
  • RFC 3339(Request For Comments)란?

    IETF(Internet Engineerging Task Force)에서 관리되고 있는 인터넷 표준 등이 작성되어 있는 문서입니다.
    ISO 8601과 마찬가지로 날짜 및 시간의 표준에 대해 다루고 있으며, RFC 3339의 내용 대부분은 ISO 8601을 따르고 있어 거의 비슷하며, 차이점으로 RFC 3339에서는 문자 T 대신 공백으로 날짜와 시간을 구분할 수 있습니다.
    예) 2022-08-02 20:37:10+09:00

  • 유닉스 시간(Unix time)
    • 유닉스 시간은 시각을 나타내는 방식으로 유닉스 계열의 운영체제를 사용하는 컴퓨터에서 시간을 표시하는 방법입니다. POSIX 시간이나 Epoch 시간이라고 부르기도 하며 1970년 1월 1일 0시 0분 0초 UTC에서부터 현재까지 몇 초가 지났는지를 정수 형태로 표시합니다. 그레고리력을 따르지만 윤초는 따지지 않고 무시됩니다.
      예) 2022-05-18 09:20:04 ➝ 1652833204

    • 유닉스 시간은 32비트로 표현되며 시스템에서 표시할 수 있는 최대 정수인 2,147,483,647에 도달하는 2038년 1월 19일 03:14:07(UTC)가 지나면 산술 오버플로와 관련된 문제를 발생시킵니다.(유닉스 시간을 쓰는 장비들의 시간이 -2,147,483,647 또는 0으로 표기) 해당 시간이 되기 전에 문제 해결을 위해 어떻게 조치할 지도 궁금합니다. 😁

    • 흥미로운 유닉스 시간(UTC 기준)
      • 2005년 03월 18일 01시 58분 31초 ➝ 유닉스 시간으로 1,111,111,111
      • 2009년 02월 13일 23시 31분 30초 ➝ 유닉스 시간으로 1,234,567,890
      • 2040년 06월 02일 03시 57분 02초 ➝ 유닉스 시간으로 2,222,222,222


  • 글을 마무리하며...
    지금까지 협정 세계시와 시간의 표기가 어떻게 되는지에 대해 알아보았습니다. 실제 웹 개발을 진행할 때도 이러한 시간 개념을 알고 있다면 굉장히 도움될 것 같습니다 :) 추가로, 세계 각국 시간을 확인할 수 있는 웹사이트 를 소개해 드리고, 다음에 기회가 된다면 Django에서는 시간을 어떤 방식으로 표현할 수 있는지에 대해 알아보는 시간을 갖도록 하겠습니다.



References


profile
진정성 있는 개발자를 꿈꾼다

0개의 댓글