Apparemment j’ai entendu (suite à ça).
Bientôt on pourra donc demander « Temporal.Now.plainDateTimeISO("America/New_York"); » pour avoir l’heure dans le fuseau de NYC.
Et je suppose qu’on pourra remplacer .now() par n’importe quelle heure.
Dans mon cas précis d’outil, je ferais donc :
let dateEntrée = Temporal.$dateInputValue.plainDateTimeISO($fuseauEntré);
let dateSortie = Temporal.$dateEntrée.plainDateTimeISO($fuseauSortie);
Et ça dira l’heure qu’il est dans $fuseauSortie lorsqu’il est $dateEntrée dans $fuseauEntrée.
Directement, sans hack pourris.
Ça ne m’empêche pas d’avoir réussis actuellement un truc qui fonctionne bien : https://lehollandaisvolant.net/tout/tools/tzconvert/
C’est juste que je dois concaténer une heure (yyyy-mm-ddThh:ii:ss.µµµ) avec un décalage (±hh:ii), pour que JS comprenne ça comme un instant donné qui soit différent du fuseau local de l’ordinateur (son référentiel par défaut).
(le gros du code dans l’outil est la gestion de la liste des fuseaux : je récupère la liste des fuseaux officiels internes à JS, regroupe (Paris, Madrid, Amsterdam, Berlin, etc… sont identique, je les regroupe par continent), puis que je trie (de −12 à +14, en tenant compte des fuseaux +3:30 ou +4:45 des dictatures farfelues qui veulent leur fuseaux à eux (Iran, Corée du Nord…), formate enfin puis affiche).
(Oh et j’espère qu’avec Temporal ils vont enfin corriger le truc dégueux qui fait que le premier mois de l’année est le mois 0 alors que le premier jour du moins et le 1).