Temporal.PlainDateTime : méthode toZonedDateTime()
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 toZonedDateTime() des instances de Temporal.PlainDateTime retourne une nouvelle instance de Temporal.ZonedDateTime représentant la même date et heure que cette date et heure simple, mais dans le fuseau horaire défini.
Syntaxe
toZonedDateTime(timeZone)
toZonedDateTime(timeZone, options)
Paramètres
timeZone-
Soit une chaîne de caractères, soit une instance de
Temporal.ZonedDateTimereprésentant le fuseau horaire à utiliser. Si c'est une instance deTemporal.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 avec 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). optionsFacultatif-
Un objet contenant la propriété suivante :
disambiguationFacultatif-
Une chaîne de caractères définissant quoi faire lorsque cette heure simple correspond à zéro ou plusieurs instants dans le fuseau horaire, généralement en raison des changements d'heure d'été. Les valeurs possibles sont
"compatible","earlier","later"et"reject". La valeur par défaut est"compatible". Pour plus d'informations sur ces valeurs, voir ambiguïté et écarts entre l'heure locale et l'heure UTC.
Valeur de retour
Une nouvelle instance de Temporal.ZonedDateTime représentant la même date et heure que cette date et heure simple, mais dans le fuseau horaire défini.
Exceptions
RangeError-
Levée dans l'un des cas suivants :
- L'une des options est invalide.
timeZonen'est pas un identifiant de fuseau horaire valide.- L'heure de l'horloge murale est ambiguë dans le fuseau horaire, et
options.disambiguationest défini à"reject".
TypeError-
Levée si l'un des arguments n'est pas du type attendu.
Exemples
>Utiliser la méthode toZonedDateTime()
const dt = Temporal.PlainDateTime.from("2021-08-01T12:34:56");
const zdt = dt.toZonedDateTime("America/New_York");
console.log(zdt.toString()); // '2021-08-01T12:34:56-04:00[America/New_York]'
const dt2 = Temporal.PlainDateTime.from("2021-01-01T12:34:56");
const zdt2 = dt2.toZonedDateTime("America/New_York");
console.log(zdt2.toString()); // '2021-01-01T12:34:56-05:00[America/New_York]'
Gérer les heures ambiguës
Ci-dessous, nous avons deux heures d'horloge murale que nous voulons interpréter dans le fuseau horaire America/New_York. La première, dtNotExist, n'a jamais existé en raison d'un passage à l'heure d'été, il faut donc choisir entre les heures 01:05:00-05:00 ou 03:05:00-04:00. La seconde, dtAmbiguous, est apparue deux fois à cause d'un retour à l'heure d'hiver, il faut donc choisir entre les heures 01:05:00-04:00 ou 01:05:00-05:00. Pour une explication plus détaillée de cette situation, voir ambiguïté et écarts entre l'heure locale et l'heure UTC.
const dtNotExist = Temporal.PlainDateTime.from("2024-03-10T02:05:00");
const dtAmbiguous = Temporal.PlainDateTime.from("2024-11-03T01:05:00");
// Par défaut : compatible
console.log(dtNotExist.toZonedDateTime("America/New_York").toString());
// '2024-03-10T03:05:00-04:00[America/New_York]'
console.log(dtAmbiguous.toZonedDateTime("America/New_York").toString());
// '2024-11-03T01:05:00-04:00[America/New_York]'
// Utiliser l'heure la plus ancienne pour les heures ambiguës
console.log(
dtNotExist
.toZonedDateTime("America/New_York", { disambiguation: "earlier" })
.toString(),
);
// '2024-03-10T01:05:00-05:00[America/New_York]'
console.log(
dtAmbiguous
.toZonedDateTime("America/New_York", { disambiguation: "earlier" })
.toString(),
);
// '2024-11-03T01:05:00-04:00[America/New_York]'
// Utiliser l'heure la plus récente pour les heures ambiguës
console.log(
dtNotExist
.toZonedDateTime("America/New_York", { disambiguation: "later" })
.toString(),
);
// '2024-03-10T03:05:00-04:00[America/New_York]'
console.log(
dtAmbiguous
.toZonedDateTime("America/New_York", { disambiguation: "later" })
.toString(),
);
// '2024-11-03T01:05:00-05:00[America/New_York]'
// Lever une erreur pour les heures ambiguës
dtNotExist.toZonedDateTime("America/New_York", { disambiguation: "reject" });
// RangeError: instant is ambiguous
Spécifications
| Spécification |
|---|
| Temporal> # sec-temporal.plaindatetime.prototype.tozoneddatetime> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Temporal.PlainDateTime - L'objet
Temporal.ZonedDateTime - La méthode
Temporal.PlainDateTime.prototype.toPlainDate() - La méthode
Temporal.PlainDateTime.prototype.toPlainTime() - La méthode
Temporal.ZonedDateTime.prototype.toPlainDateTime()