Час/числа

Парсер тривалості ISO 8601

Розібрати рядок на кшталт "P3Y6M4DT12H30M5S" у зрозумілий вигляд або скласти такий рядок із років/місяців/днів/годин/хвилин/секунд.


                        

Часті запитання

Що означає рядок на кшталт P3Y6M4DT12H30M5S?

Це стандартний формат ISO 8601 для тривалості: P означає "period", далі йдуть роки/місяці/дні до літери T, після якої — години/хвилини/секунди. У прикладі це 3 роки, 6 місяців, 4 дні, 12 годин, 30 хвилин і 5 секунд.

Чим ISO-тривалість відрізняється від простої тривалості в годинах?

На відміну від фіксованих одиниць (як у калькуляторі тривалості), компоненти "роки" й "місяці" тут календарні й не мають сталої кількості секунд — їх точна довжина залежить від конкретних дат застосування.

Чи підтримується тижневий формат P4W?

Так, але лише під час розбору готового рядка. Для складання власного рядка тижні потрібно виразити в днях, оскільки ISO 8601 не дозволяє поєднувати тижні з іншими компонентами в одному рядку.