Длительности ISO 8601
Формат ISO записывает длительность как P, за которым следуют части даты и, после T, части времени: P1Y2M3DT4H5M6S — это один год, два месяца, три дня, четыре часа, пять минут и шесть секунд. У недель своя форма, P2W. Части можно опускать (PT30M, P1D), а последняя может содержать десятичную дробь (PT0.5S). Именно T отличает месяцы от минут: P1M — месяц, PT1M — минута.
Он встречается в iCalendar (DURATION:PT1H), метаданных YouTube и schema.org, манифестах Kubernetes, Duration.parse в Java, XmlConvert в .NET и многих REST API. У лет и месяцев нет фиксированной длины, поэтому длительность, содержащая их, не может быть точно переведена в секунды; этот инструмент использует средний год (365,25 дня) и средний месяц (30,4375 дня) и сообщает об этом.
Другие нотации
| Форма | Пример | Где |
|---|---|---|
| Секунды | 5400 | Утилиты Unix, TTL, тайм-ауты в большинстве конфигурационных файлов |
| Миллисекунды | 5400000 | JavaScript, Java, журналирование |
| Часы | 1:30:00 | Медиаплееры, электронные таблицы, ffmpeg |
| Стиль Go | 1h30m, 500ms, 1.5h | Go, Prometheus, Docker, Caddy, многие CLI |
| systemd | 1h 30min, 90min, 2 days | Таймеры systemd и параметры юнитов |
| ISO 8601 | PT1H30M | API, iCalendar, Java, .NET |
Ловушки
1:30означает 1 минуту 30 секунд в медиаплеерах и 1 час 30 минут в электронных таблицах. Инструмент читаетh:mm:ssпри двух двоеточиях иh:mmпри одном; добавьте секунды, чтобы избежать двусмысленности.- В
time.ParseDurationв Go нет единицы «день»;24h— самая крупная. systemd принимаетd,w,monthиy. - Длительность в месяцах — это не число секунд. Храните её как строку ISO, если важен календарный смысл (расчётные периоды), или как секунды, если важно прошедшее время (тайм-ауты).
Вопросы
Сколько секунд в часе, дне, неделе?
3 600 в часе, 86 400 в дне, 604 800 в неделе. 30-дневный месяц — это 2 592 000, а 365-дневный год — 31 536 000 секунд.
Что означает PT1H30M?
Длительность ISO 8601 в 1 час 30 минут. P начинает длительность, T отделяет временную часть, H и M — часы и минуты.
Как перевести миллисекунды в минуты?
Разделите на 60 000. 90 000 мс — это 1,5 минуты. Введите значение с ms (90000ms), и инструмент покажет все единицы.
Сколько секунд в месяце?
Зависит от месяца: 28–31 день, то есть 2 419 200–2 678 400 секунд. В среднем 30,4375 дня (2 629 800 с) — это средний григорианский месяц, который этот конвертер использует для P1M.