Convertisseur de durées ISO 8601
Convertit la notation de durée ISO 8601 (ex. PT1H30M) en secondes et inversement. Pratique pour décoder les formats utilisés par l'API YouTube, les délais d'expiration AWS et les flux RSS de podcasts.
Exemples courants de durée ISO 8601
Une durée ISO 8601 commence par "P", suivi des années/mois/jours, puis par "T" suivi des heures/minutes/secondes. Voici des exemples courants et les secondes qu'ils représentent.
| Notation | Secondes au total | Remarque |
|---|---|---|
| PT30S | 30 | Une valeur de délai d'expiration courte typique, comme 30 secondes |
| PT1H30M | 5,400 | 1 heure 30 minutes, une façon courante d'exprimer la durée d'un film ou la longueur d'une vidéo YouTube |
| P1D | 86,400 | 1 jour (24 heures), souvent utilisé pour les durées de conservation des journaux ou l'expiration du cache |
| P3Y6M4DT12H30M5S | 110,842,205 | Un exemple combiné équivalant à 3 ans, 6 mois, 4 jours, 12 heures, 30 minutes et 5 secondes (les années/mois utilisent l'approximation de 365,25 jours) |
Astuces
- Les durées incluant des années ou des mois n'ont pas, en réalité, un nombre fixe de secondes ; cet outil utilise donc une approximation fixe : 1 an = 365,25 jours et 1 mois = 30,44 jours.
- Lors de la génération d'une chaîne de durée à partir de secondes, choisissez "jours/heures/minutes/secondes uniquement" pour éviter totalement l'approximation des années/mois et obtenir un résultat exact, indépendant du calendrier.
- L'API de données YouTube renvoie la durée de la vidéo dans le champ contentDetails.duration au format ISO 8601 ; vous pouvez donc la coller directement ici pour obtenir le total en secondes.
- Des services cloud comme AWS Lambda et API Gateway utilisent parfois la notation de durée ISO 8601 pour configurer les délais d'expiration, ce qui rend cet outil utile pour vérifier ces valeurs.
- Les flux RSS de podcasts utilisent parfois le format de durée ISO 8601 dans la balise itunes:duration, en plus du format hh:mm:ss plus courant.
Questions fréquentes
Anecdote — Pourquoi le monde informatique dispose-t-il d'un format dédié aux « durées » ?
ISO 8601 est surtout connue comme la norme internationale de représentation des dates et heures, mais cette même norme définit aussi une notation distincte pour les « durées » : la longueur de temps entre deux points, plutôt qu'un instant unique. Une date-heure répond à la question « quand », tandis qu'une durée répond à « combien de temps » ; bien qu'elles se ressemblent à première vue, elles représentent des types d'informations fondamentalement différents. La notation dédiée commençant par « P » existe précisément pour maintenir cette distinction claire.
L'une des raisons pour lesquelles la notation de durée est si utile en pratique est qu'elle évite les erreurs de confusion d'unités lors de l'échange de données entre systèmes. Si une réponse d'API renvoyait simplement le nombre « 30 », l'appelant devrait consulter la documentation pour savoir s'il s'agit de secondes ou de minutes. Avec « PT30S », la valeur et son unité voyagent ensemble dans une seule chaîne, si bien qu'un analyseur correctement implémenté ne peut jamais mal l'interpréter.
C'est exactement pour cette raison que l'API de données YouTube renvoie la durée des vidéos au format ISO 8601 : une chaîne comme « PT4M13S » signifie sans ambiguïté une vidéo de 4 minutes 13 secondes. Des plateformes cloud comme AWS et Google Cloud adoptent parfois le même format pour les paramètres de délai d'expiration, donc si vous repérez cette notation dans un fichier de configuration YAML ou une réponse JSON, la passer dans cet outil pour voir le nombre de secondes équivalent peut aider à mieux se représenter la valeur.
Dans le même temps, la norme présente une particularité intéressante : les durées incluant des années ou des mois n'ont pas de longueur absolue fixe. Le même « P1Y » peut représenter 365 ou 366 jours réels selon qu'il englobe ou non une année bissextile. En fin de compte, c'est exactement pour cette raison que cet outil doit recourir à une approximation dès qu'une conversion implique des années ou des mois.