
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로 변환한 값