ISO 8601

ISO
Dragon C's avatar
Aug 09, 2024
ISO 8601

ISO 8601이란?

  • 날짜와 시간을 표현하는 국제 표준으로 날짜와 시간을 인간이 읽기 쉬운 형식으로 제공하는 것을 목표로 한다.

  • 이 표준은 전 세계적으로 날짜와 시간 데이터를 명확하고 일관되게 교환하고 사용할 수 있도록 지원하기 위해 설계

 

날짜 표현

  • ISO 8601은 기본 형식과 확장 형식 두 가지를 제공

  • 기본형식 : 구분자 없이 날짜와 시간을 표현하며 YYYYMMDD(예: 20240615)로 표현

  • YYYY는 년도를 나타내며 YY와 같은 축약형은 권장하지 않습니다. 그 이유는 20으로 하면 1920인지 2020인지 표현이 모호해지기 때문

  • MM은 월, DD는 일을 나타냅니다. 이 또한 M, D 처럼 줄여서 쓰는것은 허용되지 않습니다. MM의 1월은 01, DD의 1일은 01을 나타냅니다.

  • 확장형식: 구분자를 사용하여 더 명확하고 읽기 좋게 YYYY-MM-DD(예: 2024-06-15)로 각 구분 사이에 -를 추가하여 표현

 

시간 표현

  • ISO 8601은 24시간제를 사용하여 표현

  • 기본형식: hhmmss.sss

  • hh는 시간, mm은 분, ss.sss는 초를 각각 나타낸다.

  • hh는 00 ~ 24까지 가능하며 24는 다음날 00시와 동일(2024-06-24T24 = 2024-06-25T00)

  • mm은 00 ~ 59, ss.sss는 00 ~ 60 까지 허용

  • 확장형식: 구분자 :를 추가해서 hh:mm:ss.sss

 

TimeZone 표현

  • ISO 8601의 표준 시간대는 지역 시간(local time), timezone(UTC 혹은 UTC의 오프셋)으로써 표현할 수 있다

  • 지역시간: 사용자가 살고 있는 지역 시간 (2024-06-27T11:41:32.311)

  • 하지만 서로 다른 시간대 간의 통신이 일어날 때 표현이 애매해진다. 내 PC의 시간이 한국 시간으로 표현되고 상대방이 미국에 있을 때 경우 → 이를 해결하기 위한게 timezone

timezone

  • timezone은 UTC(협정 세계시[Coordinated Universal Time/Universal Time Coordinated])를 기본으로 하며 UTC인 경우에는 z로 표현할 수 있다. (2024-06-27T11:41:32.311Z (미국시간) = 2024-06-27T20:41:32.311 (한국시간))

  • 오프셋 : UTC에서 경도의 차이에 따라 시간이 다른 것(= 시차 차이)

  • 표현법: z와 마찬 가지로 ±[hh]:[mm], ±[hh][mm], 혹은 ±[hh] 형식의 시간 뒤에 덧붙여서 표현

  • timezone이 포함된 시간(2024-06-27T20:41:32.311+09:00) = 2024-06-27T11:41:32.311Z

  • 2024-06-27T20:41:32.311+09:00 = 한국 표준시(KST, UTC+9)를 사용한 시각이며 여기서 +09:00은 UTC보다 9시간 앞선다는 의미

  • 2024-06-27T11:41:32.311Z = 이 시간은 UTC(협정 세계시, Zulu 시간) 기준이며 z는 UTC를 나타낸다

toISOString()

  • ISO 8601의 문자열을 반환하며 반환값은 언제나 YYYY-MM-DDTHH:mm:ss.sssZ 형식으로 반환. 시간대는 언제나 UTC이며 접미어 z로 표현한다.

  • 시간대 오프셋을 고려하지 않고, UTC로 변환한 값

Share article

cmun2