Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Temporal.ZonedDateTime : méthode withTimeZone()

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

La méthode withTimeZone() des instances de Temporal.ZonedDateTime retourne un nouvel objet Temporal.ZonedDateTime représentant le même instant que cette date et cette heure mais dans le nouveau fuseau horaire. Comme tous les objets Temporal sont conçus pour être immuables, cette méthode fonctionne essentiellement comme le mutateur de la propriété timeZoneId de la date et de l'heure.

Pour remplacer les propriétés de composant de la date et de l'heure, utilisez la méthode with(). Pour remplacer son calendrier, utilisez la méthode withCalendar().

Syntaxe

js
withTimeZone(timeZone)

Paramètres

timeZone

Une chaîne de caractères ou une instance de Temporal.ZonedDateTime représentant le fuseau horaire à utiliser. Si c'est une instance de Temporal.ZonedDateTime, son fuseau horaire est utilisé. Si c'est une chaîne de caractères, elle peut être un identifiant de fuseau horaire nommé, un identifiant de fuseau horaire par décalage, ou une chaîne de caractères de date et d'heure contenant un identifiant de fuseau horaire ou un décalage (voir fuseaux horaires et décalages pour plus d'informations).

Valeur de retour

Un nouvel objet Temporal.ZonedDateTime représentant le même instant que cette date et cette heure mais dans le nouveau fuseau horaire.

Exceptions

TypeError

Levée si timeZone n'est pas une chaîne de caractères ou une instance de Temporal.ZonedDateTime.

RangeError

Levée si le nom du fuseau horaire n'est pas valide.

Exemples

Utiliser la méthode withTimeZone()

js
const meetingTime = Temporal.ZonedDateTime.from(
  "2021-08-01T12:00[America/New_York]",
);
const meetingTimeInParis = meetingTime.withTimeZone("Europe/Paris");
console.log(meetingTimeInParis.toString()); // 2021-08-01T18:00:00+02:00[Europe/Paris]

Remplacer le fuseau horaire tout en conservant la même heure affichée

Dans le cas rare où vous souhaitez conserver la même heure affichée mais changer le fuseau horaire (et obtenir un instant différent), convertissez-le d'abord en Temporal.PlainDateTime :

js
const meetingTime = Temporal.ZonedDateTime.from(
  "2021-08-01T12:00[America/New_York]",
);
const meetingTimeInParis = meetingTime
  .toPlainDateTime()
  .toZonedDateTime("Europe/Paris");
console.log(meetingTimeInParis.toString()); // 2021-08-01T12:00:00+02:00[Europe/Paris]

Spécifications

Spécification
Temporal
# sec-temporal.zoneddatetime.prototype.withtimezone

Compatibilité des navigateurs

Voir aussi