Analisador de duração ISO 8601|PnYnMnDTnHnMnS para segundos, minutos e horas
Cole uma duração ISO 8601 como P1Y6M14DT12H30M45S, PT1H30M ou a forma semanal P1W e obtenha de uma vez o total em segundos, milissegundos, minutos e horas. Cada componente Y/M/D/H/M/S é separado ao lado de uma linha legível por humanos.
💡 Sobre esta ferramenta
Quem lida com agendadores tipo cron, probes do Kubernetes, campos format: duration do OpenAPI ou APIs RFC 3339 vê strings como PT30M e P3DT4H o tempo todo. Lê-las é simples, mas calcular "afinal, quantos segundos são?" de cabeça é chato, e confundir os limites de unidade Y/M/D joga o resultado uma ordem de grandeza para o lado errado.
Este analisador pega a string como está e mostra o total em segundos, milissegundos, minutos e horas em quatro cartões ao mesmo tempo. Ele também decompõe o valor nos seis componentes Y·M·D·H·M·S, deixando à vista a estrutura do ISO 8601: tudo antes do T é a parte de data e tudo depois é a parte de hora. Para durações que cruzam meses ou anos, dá para alternar a base de "dias por ano" entre 365, 365.25 e 366 e comparar lado a lado uma estimativa com ano bissexto e outra de 365 dias.
🧐 Perguntas frequentes
P. Quantos segundos são P1Y ("um ano")?
Depende da base de dias por ano escolhida: 31.536.000 s com 365 dias e 31.557.600 s com 365,25. Os meses são aproximados como um ano dividido por doze.
P. Por que anos e meses são "aproximados"? As durações ISO 8601 são nominais e independentes do calendário — um mês real vai de 28 a 31 dias. Se você precisa da diferença exata a partir de uma data inicial específica, use aritmética de calendário, e não uma conversão de comprimento fixo.
P. A forma semanal P1W funciona?
Sim. P1W é convertida como 7 dias = 604.800 segundos. A forma semanal, porém, deve ser usada sozinha; não dá para misturá-la com outros designadores como P1Y2W.
P. Posso inserir decimais?
Sim. Valores com ponto (ou vírgula) decimal, como PT1.5H ou PT0.5S, são interpretados.
P. Durações negativas (-PT1H) são suportadas?
Não. Uma string que começa com sinal de menos é rejeitada como erro aqui.
P. O que acontece se eu esquecer o T?
P1M significa um mês; PT1M significa um minuto. M representa meses na parte de data e minutos na parte de hora, então, se você quer minutos, coloque-o sempre depois do T.
📚 Onde a duração ISO 8601 aparece no dia a dia
No desenvolvimento, o formato de duração ISO 8601 surge em mais lugares do que parece: intervalos de retry, timeouts de pipeline e metadados de mídia. A YouTube Data API, por exemplo, devolve contentDetails.duration em strings como PT4M13S, e ferramentas de infraestrutura aceitam intervalos no mesmo padrão. Saber ler e converter esses valores rápido poupa idas e vindas na documentação.
O detalhe que mais pega é o T: como M vale "mês" antes dele e "minutos" depois, esquecer o separador transforma silenciosamente um minuto em um mês inteiro. Por isso, ao receber uma string de configuração de uma biblioteca de fora, converter para segundos puros de uma só vez é a forma mais rápida de conferir o valor antes de colocá-lo em produção — e de evitar que um P1M no lugar de PT1M derrube um agendamento.