Conversor de duraciones ISO 8601
Convierte notación de duración ISO 8601 (p. ej. PT1H30M) a segundos totales y viceversa. Útil para interpretar formatos usados por la API de YouTube, tiempos de espera en AWS y feeds RSS de podcasts.
Ejemplos habituales de duración ISO 8601
Una duración ISO 8601 empieza con "P", seguido de años/meses/días, y luego "T" seguido de horas/minutos/segundos. A continuación se muestran ejemplos habituales y los segundos que representan.
| Notación | Segundos totales | Nota |
|---|---|---|
| PT30S | 30 | Un valor típico de tiempo de espera corto, como 30 segundos |
| PT1H30M | 5,400 | 1 hora y 30 minutos: una forma habitual de expresar la duración de una película o de un vídeo de YouTube |
| P1D | 86,400 | 1 día (24 horas): se usa a menudo para periodos de retención de logs o caducidad de caché |
| P3Y6M4DT12H30M5S | 110,842,205 | Un ejemplo combinado equivalente a 3 años, 6 meses, 4 días, 12 horas, 30 minutos y 5 segundos (los años/meses usan la aproximación de 365,25 días) |
Consejos
- Las duraciones que incluyen años o meses no tienen un número fijo de segundos en la realidad, así que esta herramienta usa una aproximación fija: 1 año = 365,25 días y 1 mes = 30,44 días.
- Al generar una cadena de duración a partir de segundos, elige "solo días/horas/minutos/segundos" para evitar por completo la aproximación de años/meses y obtener un resultado exacto e independiente del calendario.
- La API de datos de YouTube devuelve la duración del vídeo en el campo contentDetails.duration usando notación ISO 8601, así que puedes pegarla directamente aquí para obtener el total en segundos.
- Servicios en la nube como AWS Lambda o API Gateway a veces usan notación de duración ISO 8601 para configurar tiempos de espera, lo que hace útil esta herramienta para verificar esos valores.
- Los feeds RSS de podcasts a veces usan el formato de duración ISO 8601 en la etiqueta itunes:duration, además del formato hh:mm:ss más habitual.
Preguntas frecuentes
A propósito — ¿Por qué el mundo de la informática tiene un formato dedicado a las "duraciones"?
ISO 8601 es conocido sobre todo como el estándar internacional para representar fechas y horas, pero ese mismo estándar también define una notación independiente para las "duraciones": la longitud de tiempo entre dos puntos, en lugar de un único instante. Una fecha-hora responde a "cuándo", mientras que una duración responde a "cuánto tiempo", y aunque a primera vista se parecen, representan tipos de información fundamentalmente distintos. La notación dedicada que empieza por "P" existe precisamente para mantener clara esa distinción.
Una de las razones por las que la notación de duración resulta tan útil en la práctica es que evita errores de desajuste de unidades al intercambiar datos entre sistemas. Si una respuesta de API simplemente devolviera el número "30", quien la reciba tendría que consultar la documentación para saber si se trata de segundos o de minutos. Con "PT30S", el valor y su unidad viajan juntos en una sola cadena, de modo que un analizador correcto nunca puede interpretarlo mal.
Por eso mismo la API de datos de YouTube devuelve la duración del vídeo en formato ISO 8601: una cadena como "PT4M13S" significa sin ambigüedad un vídeo de 4 minutos y 13 segundos. Plataformas en la nube como AWS y Google Cloud a veces adoptan el mismo formato para configurar tiempos de espera y caducidad, así que si detectas esta notación en un archivo de configuración YAML o en una respuesta JSON, pasarla por esta herramienta para ver el número equivalente de segundos puede ayudarte a hacerte una idea más clara del valor.
Al mismo tiempo, el estándar tiene una particularidad interesante: las duraciones que incluyen años o meses no tienen una longitud absoluta fija. El mismo "P1Y" puede representar 365 o 366 días reales según si abarca un año bisiesto. En última instancia, esta es la razón por la que esta herramienta debe recurrir a una aproximación siempre que una conversión implique años o meses.