Qualité des données

La ligne de changement de date et les requêtes qui la traversent

Placez-vous à faible distance de la ligne de changement de date, et il est tout à fait possible que votre voisin de l'autre côté de cette ligne vive une date calendaire différente de la vôtre, alors que vous voyez tous deux à peu près la même heure locale et que vous êtes physiquement proches. C'est l'un des faits les plus véritablement déroutants de l'organisation du temps dans le monde, et il a des conséquences réelles et pratiques pour toute logique sensible aux dates qui fonctionne à proximité.

La ligne de changement de date existe parce que les fuseaux horaires s'enchaînent autour du globe jusqu'à se rejoindre quelque part, et, par une convention de longue date, ce point de jonction suit à peu près le 180e méridien dans le Pacifique, tracé délibérément à travers l'océan et autour des terres habitées autant que possible, précisément pour réduire le nombre de lieux situés juste sur le saut. La franchir dans un sens fait reculer votre date d'un jour. La franchir dans l'autre la fait avancer d'un jour. Cela s'ajoute, indépendamment, à la différence de décalage horaire ordinaire à laquelle on s'attend en franchissant n'importe quelle autre limite de fuseau.

Pour la plupart des applications, la question ne se pose tout simplement jamais, puisque la ligne de changement de date traverse surtout l'océan et que le nombre de personnes et d'entreprises actives juste à sa limite est faible. Elle devient une vraie préoccupation pour les applications qui opèrent dans les États et territoires insulaires du Pacifique proches de la ligne, où un système de planification, une plateforme de réservation ou tout ce qui calcule « quel jour sommes-nous en ce moment à cet endroit » doit connaître le tracé exact de la ligne, et pas seulement le décalage horaire général, faute de quoi il calculera une date calendaire plausible mais fausse pour des lieux très proches de celle-ci.

C'est précisément pourquoi s'appuyer sur une véritable recherche de fuseau horaire, liée au fuseau IANA réel d'un lieu donné, compte ici plus que presque partout ailleurs. Un calcul naïf fondé uniquement sur la longitude et une simple formule de décalage se trompera sur la ligne de changement de date, car le tracé réel de la ligne s'écarte délibérément d'un méridien droit à plusieurs endroits, précisément pour maintenir certains États et territoires insulaires sur une date unique et cohérente plutôt que de les couper maladroitement en deux.

Si votre application opère à proximité du Pacifique et calcule des dates, et pas seulement des heures, en fonction de la localisation, utilisez une véritable recherche de fuseau horaire liée au fuseau réel de cette coordonnée plutôt que de déduire la date directement de la longitude, et testez explicitement des lieux connus pour être proches de la ligne de changement de date plutôt que de supposer que votre gestion générale des fuseaux horaires couvre automatiquement et correctement ce cas limite précis.