Conversor de duração ISO 8601
Converta a notação de duração ISO 8601 (ex.: PT1H30M) em segundos totais e vice-versa. Útil para interpretar formatos usados pela API do YouTube, tempos limite da AWS e feeds RSS de podcasts.
Exemplos comuns de duração ISO 8601
Uma duração ISO 8601 começa com "P", seguido de anos/meses/dias, e depois "T" seguido de horas/minutos/segundos. Abaixo estão exemplos comuns e os segundos que representam.
| Notação | Total de segundos | Observação |
|---|---|---|
| PT30S | 30 | Um valor típico de tempo limite curto, como 30 segundos |
| PT1H30M | 5,400 | 1 hora e 30 minutos — forma comum de expressar a duração de um filme ou de um vídeo do YouTube |
| P1D | 86,400 | 1 dia (24 horas) — frequentemente usado para períodos de retenção de logs ou expiração de cache |
| P3Y6M4DT12H30M5S | 110,842,205 | Um exemplo combinado equivalente a 3 anos, 6 meses, 4 dias, 12 horas, 30 minutos e 5 segundos (anos/meses usam a aproximação de 365,25 dias) |
Dicas
- Durações que incluem anos ou meses não têm, na realidade, um número fixo de segundos, então esta ferramenta usa uma aproximação fixa: 1 ano = 365,25 dias e 1 mês = 30,44 dias.
- Ao gerar uma string de duração a partir de segundos, escolha "apenas dias/horas/minutos/segundos" para evitar totalmente a aproximação de anos/meses e obter um resultado exato e independente do calendário.
- A API de Dados do YouTube retorna a duração do vídeo no campo contentDetails.duration usando notação ISO 8601, então você pode colá-la diretamente aqui para obter o total em segundos.
- Serviços em nuvem como AWS Lambda e API Gateway às vezes usam notação de duração ISO 8601 para configurar tempos limite, o que torna esta ferramenta útil para verificar esses valores.
- Feeds RSS de podcasts às vezes usam o formato de duração ISO 8601 na tag itunes:duration, além do formato hh:mm:ss mais comum.
Perguntas frequentes
Curiosidade — Por que o mundo da computação tem um formato dedicado para "durações"?
A ISO 8601 é mais conhecida como o padrão internacional para representar datas e horas, mas o mesmo padrão também define uma notação separada para "durações" — o intervalo de tempo entre dois pontos, em vez de um único instante. Uma data-hora responde "quando", enquanto uma duração responde "por quanto tempo", e embora pareçam semelhantes à primeira vista, representam tipos de informação fundamentalmente diferentes. A notação dedicada iniciada por "P" existe justamente para manter essa distinção clara.
Um dos motivos pelos quais a notação de duração é tão útil na prática é que ela evita erros de incompatibilidade de unidades ao trocar dados entre sistemas. Se uma resposta de API simplesmente retornasse o número "30", quem a recebesse teria que consultar a documentação para saber se isso significa segundos ou minutos. Com "PT30S", o valor e sua unidade viajam juntos em uma única string, de modo que um analisador correto nunca pode interpretá-la incorretamente.
É exatamente por isso que a API de Dados do YouTube retorna a duração do vídeo em formato ISO 8601: uma string como "PT4M13S" significa, sem ambiguidade, um vídeo de 4 minutos e 13 segundos. Plataformas de nuvem como AWS e Google Cloud às vezes adotam o mesmo formato para configurações de tempo limite e expiração, então, se você notar essa notação em um arquivo de configuração YAML ou em uma resposta JSON, passá-la por esta ferramenta para ver o número equivalente de segundos pode ajudar a visualizar melhor o valor.
Ao mesmo tempo, o padrão tem uma peculiaridade interessante: durações que incluem anos ou meses não têm um comprimento absoluto fixo. O mesmo "P1Y" pode representar 365 ou 366 dias reais, dependendo se abrange um ano bissexto. No fim das contas, é exatamente por isso que esta ferramenta precisa recorrer a uma aproximação sempre que uma conversão envolve anos ou meses.