IANA tz database : la base mondiale des fuseaux horaires
Europe/Paris, America/New_York, Asia/Tokyo… La base IANA tz est la source unique de tous les fuseaux horaires utilisés en informatique.
La IANA tz database (aussi appelée tzdata, zoneinfo ou Olson database) est la source de référence mondiale pour les fuseaux horaires. Maintenue depuis 1986, elle contient l'historique complet des changements de fuseau de tous les pays. Tous les systèmes d'exploitation et bibliothèques modernes l'utilisent.
Identifiants : Continent/Ville
Chaque fuseau est identifié par un nom au format Continent/Ville :
Europe/ParisAmerica/New_YorkAsia/TokyoPacific/AucklandAfrica/Casablanca
La ville est choisie comme représentative du fuseau, pas comme capitale. America/Argentina/Buenos_Aires couvre la moitié de l'Argentine, etc.
Pourquoi pas juste « UTC+1 » ?
Un offset comme UTC+1 ne dit pas si le fuseau applique l'heure d'été, ni quand le changement s'effectue. Europe/Paris est UTC+1 en hiver et UTC+2 en été ; Europe/Madrid a la même règle ; Africa/Casablanca est UTC+1 en hiver mais avec des règles DST différentes selon Ramadan. La tz database encode ces règles.
Contenu de la base
- ~600 zones identifiées par
Continent/Ville. - Pour chaque zone : historique des offsets, dates de changement DST, abréviations (CEST, EST…), corrections historiques (ex. France a changé de fuseau 7 fois au XXe siècle).
Mises à jour : 4 à 8 par an
Les changements politiques (un pays décide de supprimer le DST, fusionne deux fuseaux) déclenchent une release tzdata. Format de version : 2026a, 2026b, etc. Vos systèmes (Linux, Java, Python, Node.js) doivent être mis à jour pour intégrer ces changements.
Utilisation en code
// JavaScript (Intl natif)
new Intl.DateTimeFormat('fr-FR', {
timeZone: 'Asia/Tokyo',
dateStyle: 'full',
timeStyle: 'short',
}).format(new Date());
// Python
from zoneinfo import ZoneInfo
from datetime import datetime
datetime.now(ZoneInfo("Europe/Paris"))
// Java
ZonedDateTime.now(ZoneId.of("America/New_York"));
// PostgreSQL
SELECT now() AT TIME ZONE 'Asia/Tokyo';
Voir tous les pays et leurs fuseaux
Erreurs classiques
- Utiliser EST, CET, PST — ces abréviations sont ambiguës (EST = Eastern Standard Time US OU Australian Eastern Standard Time). Toujours préférer
America/New_YorkouAustralia/Sydney. - Stocker l'offset au lieu de la zone — un
+01:00ne saura pas appliquer le DST automatiquement. - Hardcoder les règles DST — elles changent. Toujours déléguer à la lib OS / runtime.