Время/числа
Парсер длительности ISO 8601
Разобрать строку вида "P3Y6M4DT12H30M5S" в понятный вид или собрать такую строку из лет/месяцев/дней/часов/минут/секунд.
Пустое поле = 0, нулевые поля не попадают в строку. Компонент недель (P4W) поддерживается только при разборе — для сборки укажите дни.
Длительность в формате ISO 8601 (например, P3Y6M4DT12H30M5S) — компактный, однозначный способ записать промежуток времени, который используют многие API и форматы данных, но который сложно прочитать без разбора. Инструмент переводит такую строку обычным языком и позволяет собрать её из готовых полей.
Как пользоваться
- Разбор: вставьте ISO-строку длительности — получите годы, месяцы, дни, часы, минуты и секунды отдельно, в понятном виде.
- Сборка: укажите нужные компоненты длительности — инструмент соберёт корректную ISO 8601 строку.
- Буква T перед временной частью (часы/минуты/секунды) обязательна и добавляется автоматически, когда нужно.
Типичные сценарии
- Чтение поля длительности из ответа API (подписки, аренды, таймаута), поданного в этом формате.
- Формирование корректной ISO 8601 строки для запроса, ожидающего именно такой формат длительности.
- Проверка, почему парсер стороннего API отклоняет собранную вручную длительность, — сверка с точным синтаксисом стандарта.
Что стоит помнить
Буква P в начале означает «period» (период) и обязательна, так же как T перед временной частью, отделяющая дни от часов.
Базовый стандарт не определяет знак для длительности — отрицательные длительности (для обозначения «назад») поддерживаются только отдельными реализациями как неофициальное расширение.
Статья об этом инструменте: ISO 8601 Duration: как записать длительность в стандартном формате
Часто задаваемые вопросы
Что означает строка вроде P3Y6M4DT12H30M5S?
Это стандартный формат ISO 8601 для продолжительности: P означает "period", далее идут годы/месяцы/дни до буквы T, после которой — часы/минуты/секунды. В примере это 3 года, 6 месяцев, 4 дня, 12 часов, 30 минут и 5 секунд.
Чем ISO-продолжительность отличается от простой продолжительности в часах?
В отличие от фиксированных единиц (как в калькуляторе продолжительности), компоненты "годы" и "месяцы" здесь календарные и не имеют постоянного количества секунд — их точная длина зависит от конкретных дат применения.
Поддерживается ли недельный формат P4W?
Да, но только при разборе готовой строки. Для составления собственной строки недели нужно выразить в днях, поскольку ISO 8601 не позволяет сочетать недели с другими компонентами в одной строке.
Можно ли указать дробные секунды или минуты?
Да, стандарт допускает дробную часть только в последнем компоненте строки — например, PT1.5S (1.5 секунды) или PT1H30.5M (1 час 30.5 минуты) корректны, а дробная часть в любом нефинальном компоненте — нет.
Бывают ли отрицательные ISO-длительности?
Базовый стандарт ISO 8601 не определяет знак для длительности, но некоторые реализации (в том числе этот инструмент) поддерживают ведущий минус для обозначения «назад» или обратной длительности — это распространённое, хотя и неофициальное расширение.