Je souhaite pouvoir afficher un horodatage dans le fuseau horaire indiqué par l'utilisateur. J'ai remarqué que même avec une bibliothèque dédiée comme date-fns-tz, elle semble renvoyer des valeurs qui n'ont aucun sens.
Sous le capot, ils utilisent apparemment Intl et lorsque j'utilise le module, il ne semble pas fournir la valeur correcte.
const zones = ['PST', 'MST', 'CST', 'EST']; zones.forEach((timeZone) => console.log( new Intl.DateTimeFormat('en-US', { timeZone, timeStyle: 'full', dateStyle: 'full', }).format(1588743894000) ) );
Sortie :
Tuesday, May 5, 2020 at 10:44:54 PM Pacific Daylight Time Tuesday, May 5, 2020 at 10:44:54 PM GMT-07:00 Wednesday, May 6, 2020 at 12:44:54 AM Central Daylight Time Wednesday, May 6, 2020 at 12:44:54 AM GMT-05:00
Mais cela ne devrait-il pas être quatre valeurs différentes ?
Vous spécifiez une abréviation de fuseau horaire à trois lettres, qui attend le fuseau horaire IANA (https://tc39.es/ecma402/#sec-time-zone-names). Je pense que c'est confus car vous dépassez le fuseau horaire standard pendant la journée.
Cela produit :