모든 아티클

ISO 8601 Duration: 표준 형식으로 기간을 쓰는 방법

ISO 8601 표준은 날짜 형식뿐 아니라 기간을 쓰는 형식도 정의합니다 — PT1H30M 같은 문자열은 "1시간 30분"을 명확하고 기계가 읽을 수 있게 표현합니다.

형식의 구조

문자열은 항상 문자 P(period)로 시작합니다. 날짜 구성요소(년, 월, 일)는 P 바로 뒤에 오고, 시간 구성요소(시, 분, 초)는 날짜 부분과 시간 부분을 구분하는 문자 T 뒤에 옵니다. 예를 들어 P2DT4H는 "2일과 4시간"을 의미합니다.

문자 T가 필요한 이유

구분자 T가 없다면 문자 M은 모호해집니다 — 날짜 부분에서는 월을, 시간 부분에서는 분을 나타내기 때문입니다. 그래서 P1M은 "1개월"을 의미하고, PT1M은 "1분"을 의미합니다.

유튜브 데이터 API에서의 실제 사용 예

유튜브 데이터 API의 videos.list 엔드포인트는 영상 길이를 contentDetails.duration 필드에 ISO 8601 duration 형식 문자열로 반환합니다. 예를 들어 "4분 13초" 길이의 영상은 PT4M13S 값을 가지며, 영상 관련 서비스나 분석 도구를 직접 만드는 개발자라면 이 문자열을 사람이 읽기 쉬운 시간 표시로 변환하는 코드를 한 번쯤은 작성하게 됩니다.

왜 필요한가

  • 서드파티 API 응답에서 영상이나 이벤트의 길이 해독하기.
  • 자신의 API나 데이터 피드를 위한 유효한 ISO 8601 duration 문자열 생성하기.
  • 사람이 읽을 수 있는 형식과 기계가 읽는 ISO 표기법 사이에서 기간 변환하기.

표기법에서의 소수 초

ISO 8601 표준은 문자열의 마지막(가장 작은) 구성요소에서만 소수 부분을 허용합니다 — 예를 들어 PT1.5S는 "1.5초"를, PT1H30.5M은 "1시간 30.5분"을 의미합니다. 마지막이 아닌 다른 구성요소의 소수 부분은 표준에서 허용되지 않습니다.

도구 사용해보기