Un fuseau horaire est une décision politique avant d'être une décision géographique. La limite entre deux fuseaux, la décision d'appliquer l'heure d'été et la date exacte à laquelle on avance ou recule l'heure sont toutes fixées par des gouvernements nationaux ou locaux, et chacune peut changer. C'est pourquoi les données de fuseau horaire ne peuvent pas être une table statique de décalages figée à un moment du passé. Elles doivent constituer un registre maintenu de l'historique, des règles actuelles et des changements futurs connus.
La base de données des fuseaux horaires IANA est la référence sur laquelle s'appuient la plupart des logiciels, précisément pour cette raison. Ses mainteneurs suivent les changements de l'heure légale à mesure que les gouvernements les annoncent, qu'il s'agisse d'une modification de la politique d'heure d'été, d'un changement du décalage UTC appliqué dans une région ou d'un ajustement de limite entre fuseaux à l'intérieur d'un pays. Chaque fuseau nommé, comme Europe/Amsterdam ou America/Chicago, contient non seulement une règle actuelle mais aussi l'historique complet des règles passées, car les logiciels ont souvent besoin de calculer le bon décalage pour une date passée, et pas seulement pour aujourd'hui.
Cet historique compte davantage qu'on pourrait le croire. Un horodatage datant de plusieurs années a besoin du décalage réellement en vigueur à cette date, qui peut différer de celui en vigueur aujourd'hui si les règles ont changé entre-temps. Une recherche de fuseau horaire qui ne connaît que la règle actuelle produira en silence des résultats faux pour des dates passées ou futures, c'est pourquoi il vaut la peine de demander à une API de fuseau horaire le fuseau à un instant précis, plutôt que le seul nom du fuseau, chaque fois que la date compte.
C'est aussi pourquoi une recherche de fuseau horaire doit renvoyer le nom réel du fuseau et pas seulement un décalage numérique. Europe/Amsterdam porte tout l'historique et toute la logique d'heure d'été qui s'y rattachent. +01:00 n'est correct qu'une partie de l'année et ne vous dit rien sur le moment où il change. Un logiciel qui ne stocke que le décalage d'un lieu cessera d'être exact au prochain changement d'heure, tandis qu'un logiciel qui stocke le nom du fuseau reste exact indéfiniment, tant que la base de données sous-jacente est tenue à jour.
La recherche de fuseau horaire de My Geocode renvoie à la fois le nom du fuseau IANA et le décalage UTC, et accepte un instant précis afin que le bon décalage, heure d'été comprise, s'applique à cette date exacte au lieu de supposer que la règle d'aujourd'hui a toujours été en vigueur.
Une adresse dans un centre-ville bien cartographié ne vous apprend presque rien sur la façon dont votre système gère une route rurale, une frontière contestée ou une requête près des pôles. Testez délibérément les cas difficiles.
Tous les jeux de données contenant des informations de localisation apparemment publiques ne peuvent pas légalement être utilisés dans un produit payant. Ce sont souvent les conditions de licence, et non la disponibilité technique, qui fixent la véritable limite.
Lorsqu'une requête ne peut réellement pas être résolue de manière fiable, ne rien renvoyer est une meilleure réponse que renvoyer une supposition présentée comme un fait. Voici le raisonnement derrière ce choix.