Конвертер длительности ISO 8601
Читайте и записывайте длительности ISO 8601 вроде PT1H30M в секундах и на понятном языке.
Конвертер длительности ISO 8601 полностью работает в вашем браузере: введённые длительности разбираются на устройстве и не отправляются.
Открыть конвертер длительности
Об инструменте Конвертер длительности ISO 8601
Длительности ISO 8601 встречаются везде, где интервалу времени нужно пережить путь туда и обратно через JSON: разметка schema.org, манифесты Kubernetes, схемы XML, примеры OpenAPI и формат TimeSpan в .NET. Синтаксис выглядит как P[n]Y[n]M[n]DT[n]H[n]M[n]S, и деталь, на которой спотыкаются все, — это M: до T это месяцы, после T — минуты, поэтому P1M и PT1M отличаются примерно в 43 000 раз. Этот конвертер разбирает длительность на составляющие, собирает её из обычного текста и явно показывает то, что скрывает большинство библиотек: у месяцев и лет нет фиксированной длины.
Возможности
- Разбор всей грамматики, включая недели, дроби и отрицательные значения
- Корректное различение месяцев и минут по обе стороны от T
- Итоги в секундах, миллисекундах, минутах, часах и днях
- Представление длительности на понятном языке
- Сборка длительности ISO из секунд, времени в формате часов или суффиксов единиц
- Переключение между григорианским средним значением и 30/365 днями
Как использовать Конвертер длительности ISO 8601
- Вставьте длительность ISO 8601 для чтения или переключитесь в режим сборки
- В режиме сборки введите секунды, время в формате часов или запись вроде 2d 4h
- Прочитайте итоги, разбивку по полям и представление словами
- Выберите допущение о длине месяца, если длительность содержит месяцы или годы
Пример
Ввод
P3Y6M4DT12H30M5S
Результат
3 years, 6 months, 4 days, 12 hours, 30 minutes and 5 seconds
110,984,405 seconds (Gregorian average)
Собственный пример стандарта — и напоминание о том, что две буквы M означают разное.
Частые ошибки и устранение неполадок
- P1M и PT1M воспринимаются как одно и то же. — Это не так: до T буква M означает месяцы, после — минуты. Пропущенная T — самая частая ошибка.
- Длительность с месяцами даёт другое число секунд в другой реализации. — Потому что у месяца нет фиксированной длины: одни используют 30 дней, другие 30,44, третьи — реальный календарь. Здесь показано, какое допущение применяется.
Часто задаваемые вопросы
- Что означает PT1H30M?
- Один час тридцать минут. P открывает длительность, T разделяет части даты и времени, а после T буква M означает минуты.
- В чём разница между P1M и PT1M?
- P1M — это один месяц, PT1M — одна минута. Различает их только T, поэтому она не необязательна.
- Как перевести длительность ISO 8601 в секунды?
- Недели и меньшие единицы точны; месяцы и годы — нет, поэтому нужно принять допущение — здесь можно выбрать между григорианским средним значением и 30 днями.
- Где используются длительности ISO 8601?
- В разметке schema.org, конфигурации Kubernetes и Prometheus, типах схемы XML, примерах OpenAPI и формате TimeSpan в .NET.
Связанные инструменты
Все инструменты ArrayKit