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)

O que é a notação de duração ISO 8601

A notação de duração ISO 8601 é um padrão internacional que expressa o "comprimento" entre dois pontos no tempo em uma única string, como "P3Y6M4DT12H30M5S". Enquanto uma data-hora indica um instante específico ("quando"), uma duração expressa uma diferença ("quanto tempo"), por isso existe uma notação dedicada que começa com "P", separada dos formatos de timestamp.

Desenvolvedores encontram essa notação com frequência: a API de Dados do YouTube informa assim a duração dos vídeos, as APIs da AWS e do Google Cloud a usam em configurações de tempo limite e expiração, e feeds RSS de podcasts a empregam para a duração dos episódios. Esta ferramenta converte instantaneamente entre strings de duração e segundos totais, para você conferir exatamente quanto tempo um valor representa.

Como converter durações ISO 8601 e segundos

  1. Cole uma string de duração para convertê-la em segundos Digite uma string de duração ISO 8601 como "PT1H30M" na caixa de texto superior, e o total em segundos e um detalhamento por unidade aparecem automaticamente.
  2. Experimente o exemplo Clique em "Inserir exemplo" para carregar um caso que combina anos, meses, dias, horas, minutos e segundos, e ver a conversão em ação imediatamente.
  3. Informe segundos para convertê-los em uma string de duração Digite o número total de segundos que deseja converter na caixa de texto inferior, e a string de duração ISO 8601 correspondente é gerada.
  4. Escolha um modo de conversão Selecione "anos/meses/dias" para uma notação compacta e legível, ou "apenas dias/horas/minutos/segundos" para um resultado exato sem aproximação de calendário.
  5. Copie o resultado Copie o total de segundos, minutos, horas ou dias exibido, ou a string de duração gerada, diretamente para sua requisição de API ou arquivo de configuração.

Dicas para aproveitar melhor

  • 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.

Onde a conversão de duração ISO 8601 é útil

Analisar respostas da API de Dados do YouTube

Cole um valor como "PT4M13S" de contentDetails.duration para ver instantaneamente quantos minutos e segundos dura um vídeo.

Depurar configurações da AWS e de serviços em nuvem

Verifique a quantos segundos ou horas equivale, na prática, uma notação de duração em um tempo limite do Step Functions ou do CloudFormation.

Conferir a duração de episódios em feeds RSS de podcasts

Quando a tag itunes:duration usa formato ISO 8601, compare-a com a notação hh:mm:ss mais comum para confirmar a duração.

Integração com APIs de calendário e agendamento

Parta de um número de segundos para montar o intervalo de recorrência ou a duração do lembrete exigidos por APIs como a do Google Agenda.

Criar casos de teste para um analisador próprio

Ao desenvolver seu próprio analisador de durações, use esta ferramenta para verificar o número correto de segundos de strings conhecidas e usá-lo como valor esperado nos testes.

Glossário da duração ISO 8601

ISO 8601
Um padrão internacional que define como representar datas, horas e durações. Além da notação de datas como "2026-09-16", também define a notação de duração que esta ferramenta trata.
Duração
Um valor que representa o intervalo de tempo entre dois pontos. Diferente de uma data-hora, que aponta para um instante específico, uma duração carrega a informação de quanto tempo se passa.
Notação PnYnMnDTnHnMnS
O formato básico das strings de duração ISO 8601: anos (A), meses (M) e dias (D) após o "P", seguidos de horas (H), minutos (M) e segundos (S) após o "T", incluindo apenas as unidades necessárias.
Timestamp
Um valor que representa um instante específico. Ao contrário de uma duração (uma diferença), um timestamp expressa uma posição absoluta — "quando" algo ocorreu.
RFC 3339
Uma especificação, baseada na ISO 8601, para expressar datas e horas na internet. Ela define a notação de timestamp, mas não a de duração, que permanece exclusiva da ISO 8601.
Notação de semanas (PnW)
Uma abreviação como "P2W" que expressa uma duração apenas em semanas. Segundo a ISO 8601, essa forma independente não pode ser combinada com componentes de ano/mês/dia ou com a parte de tempo.

Perguntas frequentes

PT1H30M é a notação de duração ISO 8601 para "1 hora e 30 minutos". O "P" marca o início de um período, e o "T" marca o início da parte de tempo (horas/minutos/segundos) — isso importa porque, sem o "T", "1M" significa "1 mês", enquanto após o "T" significa "1 minuto".

Exemplos conhecidos incluem o campo de duração de vídeo da API de Dados do YouTube (contentDetails.duration), configurações de tempo limite e expiração em serviços de nuvem como AWS e Google Cloud, e feeds RSS de podcasts (itunes:duration). Muitas linguagens de programação também suportam sua análise e geração, como as classes Duration/Period do Java e a biblioteca isodate do Python.

Um ano tem 365 ou 366 dias, dependendo se é bissexto, e um mês varia de 28 a 31 dias, portanto nenhum dos dois tem um número fixo de segundos. Esta ferramenta usa 365,25 dias como média prática para um ano (e um duodécimo disso, cerca de 30,44 dias, para um mês). Se precisar de um resultado exato, use o modo "exato", que expressa durações apenas com dias, horas, minutos e segundos.

Sim, notações como "P2W" (2 semanas) são suportadas. Observe que, segundo a especificação ISO 8601, a notação de semanas é uma abreviação independente que não pode ser combinada com componentes de ano/mês/dia ou com a parte de tempo.

Se a entrada não começar com "P", as unidades estiverem fora de ordem (devem seguir A→M→D e, após o "T", H→M→S), ou todas as unidades forem omitidas (uma duração vazia), a ferramenta determina que a string não pode ser convertida e exibe uma mensagem de erro em vez de um resultado.
Tool-kun

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.