도구스개발

ISO 8601 기간(Duration) 변환기

P1Y2M3DT4H5M6S 같은 ISO 8601 기간 문자열을 읽어 성분과 초로 바꾸고 반대로도 만듭니다. 연·월은 길이가 고정이 아니라 기준 날짜를 줘야 초가 확정됩니다.

사람이 읽는 표기

1년 2개월 3일 4시간 5분 6초

정규화하면 P1Y2M3DT4H5M6S

연 (Y)1
월 (T 앞의 M)2
주 (W)0
일 (D)3
시 (H)4
분 (T 뒤의 M)5
초 (S)6
확정된 길이연·월이 있어 확정되지 않습니다
어림 — 1년 365일, 1달 30일36,993,906초 · 428.1702일
어림 — 그레고리력 평균 (1년 365.2425일)37,090,350초 · 429.2865일
두 어림값의 차96,444초 · 1.1163일
연·월은 초로 바꿀 수 없습니다. 하루는 86,400초로 정해져 있지만 한 달은 28~31일, 한 해는 365~366일이라 길이가 고정되어 있지 않습니다. 표준도 연·월을 «명목» 단위로 두고 시·분·초와 다르게 다룹니다. 위의 두 값은 어림이며, 정확한 값이 필요하면 기준 날짜를 주셔야 합니다. 「P1M = 2,592,000초」처럼 돌아다니는 값은 1달을 30일로 잡은 것이라 2월이면 이틀이 남고 3월이면 하루가 모자랍니다.

초에서 거꾸로 만들기

P1DT1H1M1S

연·월은 쓰지 않고 일·시·분·초로만 만듭니다. 초에서 「몇 개월」인지는 기준 날짜 없이 정할 수 없기 때문입니다.

T를 빠뜨리면 조용히 틀립니다. T 앞의 M은 «달»이고 T 뒤의 M은 «분»입니다. 5분을 적으려다 P5M이라고 쓰면 5개월이 되는데, 문법상 멀쩡한 문자열이라 오류도 나지 않습니다. 이 표기에서 가장 흔한 실수입니다.
표준이 정한 자잘한 규칙이 몇 가지 더 있습니다. 주(W)는 다른 성분과 섞어 쓸 수 없고(P3W는 되지만 P3W2D는 표준 위반입니다), 소수는 가장 작은 성분에만 붙일 수 있으며(PT1.5H는 되지만 PT1.5H30M은 안 됩니다), 소수 구분자는 쉼표가 원칙입니다. 성분 순서도 Y→M→W→D, T 뒤로 H→M→S로 정해져 있습니다. 앞에 붙이는 음수 표시는 기본 표준이 아니라 ISO 8601-2 확장이라 받지 않는 구현이 있습니다. 이 계산기는 벗어난 부분을 읽어는 주되 무엇이 어긋났는지 함께 알려 드립니다.

사용 방법

  1. 1문자열을 읽을지 만들지 고릅니다.
  2. 2읽을 때는 P로 시작하는 기간 문자열을 넣습니다. 예시 버튼으로 흔한 형태를 볼 수 있습니다.
  3. 3성분별로 갈린 값과 표준에서 벗어난 점을 확인합니다.
  4. 4연이나 월이 들어 있으면 기준 날짜를 주어 초를 확정합니다.
  5. 5초에서 거꾸로 만들려면 맨 아래 칸에 총 초를 넣습니다.

자주 묻는 질문

P로 시작하고 성분마다 숫자와 단위 글자를 붙여 적습니다. P1Y2M3DT4H5M6S는 1년 2개월 3일 4시간 5분 6초입니다. T는 시각 성분이 시작된다는 표시이고, T 앞에는 Y·M·W·D(연·월·주·일), T 뒤에는 H·M·S(시·분·초)가 옵니다. 순서도 이대로 정해져 있어 뒤바뀌면 유효하지 않습니다.

P5M은 5개월이고 PT5M은 5분입니다. M이 T 앞에서는 달, T 뒤에서는 분을 뜻하기 때문입니다. 5분을 적으려다 T를 빠뜨려 P5M이라고 쓰면 문법상 멀쩡한 문자열이라 오류도 나지 않고 조용히 5개월이 되어 버립니다. 이 표기에서 가장 흔한 실수입니다.

기준 날짜 없이는 정할 수 없습니다. 한 달은 28일에서 31일까지라 길이가 고정되어 있지 않기 때문입니다. 표준도 연과 월을 명목 단위로 두고 시·분·초와 다르게 다룹니다. 2026-01-01부터의 1개월은 31일이지만 2026-02-01부터의 1개월은 28일입니다. 흔히 보이는 P1M = 2,592,000초는 1달을 30일로 잡은 어림값이라 2월이면 이틀이 남고 3월이면 하루가 모자랍니다.

바꿀 수 있습니다. 일은 언제나 86,400초, 주는 언제나 7일로 고정이라 P3DT4H는 기준 날짜 없이도 271,440초로 확정됩니다. 다만 실제 달력에 적용할 때 지역 시간대의 서머타임이 끼면 하루가 23시간이나 25시간이 되는 일이 있으므로, 그런 계산은 UTC로 하는 편이 안전합니다. 이 계산기의 기준 날짜 계산도 UTC로 합니다.

2월 28일(윤년이면 29일)로 보는 것이 널리 쓰이는 관행입니다. 2월 31일이라는 날은 없는데 표준이 이 경우를 정해 두지 않아, 그 달의 마지막 날로 당기는 방식이 관행으로 굳었습니다. 이 때문에 결합법칙이 깨진다는 점을 조심하셔야 합니다. 1월 31일에 한 달씩 두 번 더하면 3월 28일이지만 두 달을 한 번에 더하면 3월 31일입니다. 이 계산기는 연·월·일·시각을 한 번에 더합니다.

표준상으로는 안 됩니다. 주 표현은 별개의 표현으로 규정되어 있어 P3W처럼 단독으로만 쓰는 것이 원칙입니다. 다만 받아 주는 구현이 많아 실제로는 흔히 보이므로, 이 계산기는 읽어는 주되 표준을 벗어났다고 함께 알려 드립니다. 다른 시스템에 넘길 문자열이라면 P23D처럼 일로 바꿔 적는 편이 안전합니다.

소수는 가장 작은 성분에만 붙일 수 있습니다. PT1.5H는 되지만 PT1.5H30M은 안 됩니다. 소수 구분자는 쉼표가 원칙이고 마침표도 허용되지만, 마침표만 받는 구현이 많습니다. 앞에 붙이는 음수 표시(-PT5M)는 기본 ISO 8601에는 없고 ISO 8601-2 확장이라 받지 않는 구현이 있습니다. 이 계산기는 둘 다 읽어 주되 어긋난 점을 표시합니다.

전송되지 않습니다. 변환은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 연과 월은 길이가 고정이 아니라 기준 날짜 없이는 초로 확정되지 않습니다. 기준 날짜 없이 보여 주는 값은 어림이며, 어느 가정을 썼는지 함께 표시합니다.
  • 달을 더할 때 그 달에 없는 날이 되면 그 달의 마지막 날로 당깁니다. 표준이 정해 두지 않은 부분이라 구현마다 다를 수 있습니다.
  • 기준 날짜 계산은 UTC로 합니다. 지역 시간대로 계산하면 서머타임 때문에 하루가 23시간이나 25시간이 되어 답이 흔들립니다.
  • 주(W)를 다른 성분과 섞은 문자열과 앞에 음수 표시가 붙은 문자열은 표준을 벗어난 것이지만, 널리 쓰이므로 읽어 주고 경고만 표시합니다.
  • 초에서 거꾸로 만들 때는 연·월을 쓰지 않고 일·시·분·초로만 만듭니다. 초에서 몇 개월인지는 기준 날짜 없이 정할 수 없기 때문입니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.