Vue d’ensemble des fuseaux horairesTime zone overview

Le TimeZoneInfo classe simplifie la création d’applications prenant en charge de fuseau horaire.The TimeZoneInfo class simplifies the creation of time zone-aware applications. Le TimeZone classe prend en charge de travail avec le fuseau horaire local et le temps universel coordonné (UTC).The TimeZone class supports working with the local time zone and Coordinated Universal Time (UTC). Le TimeZoneInfo classe prend en charge les deux de ces zones ainsi que tout fuseau horaire sur les informations est prédéfinie dans le Registre.The TimeZoneInfo class supports both of these zones as well as any time zone about which information is predefined in the registry. Vous pouvez également utiliser TimeZoneInfo pour définir des fuseaux horaires personnalisés qui ne dispose d’aucune information sur le système.You can also use TimeZoneInfo to define custom time zones that the system has no information about.

Essentials du fuseau horaireTime zone essentials

Un fuseau horaire est une région géographique dans laquelle la même heure est utilisée.A time zone is a geographical region in which the same time is used. En général, mais pas toujours, des fuseaux horaires adjacents ont une heure d’écart.Typically, but not always, adjacent time zones are one hour apart. L’heure dans n’importe quel fuseau horaire du monde peut être exprimée comme un décalage par rapport au temps universel coordonné (UTC).The time in any of the world's time zones can be expressed as an offset from Coordinated Universal Time (UTC).

La plupart des fuseaux horaires du monde prennent en charge l’heure d’été.Many of the world's time zones support daylight saving time. L’heure d’été essaie d’optimiser les heures de clarté en avançant l’heure d’une heure au printemps ou au début de l’été, puis en rétablissant l’heure normale (ou standard) à la fin de l’été ou en automne.Daylight saving time tries to maximize daylight hours by advancing the time forward by one hour in the spring or early summer, and returning to the normal (or standard) time in the late summer or fall. Ces variations par rapport à l’heure d’hiver sont appelées règles d’ajustement.These changes to and from standard time are known as adjustment rules.

Le passage à l’heure d’été ou à l’heure d’hiver dans un fuseau horaire particulier peut être défini par une règle d’ajustement fixe ou flottante.The transition to and from daylight saving time in a particular time zone can be defined either by a fixed or a floating adjustment rule. Une règle d’ajustement fixe définit une date particulière à laquelle le passage à l’heure d’été ou à l’heure d’hiver se produit chaque année.A fixed adjustment rule sets a particular date on which the transition to or from daylight saving time occurs each year. Par exemple, le passage à l’heure d’hiver qui se produit chaque année le 25 octobre suit une règle d’ajustement fixe.For example, a transition from daylight saving time to standard time that occurs each year on October 25 follows a fixed adjustment rule. Les règles d’ajustement flottantes sont beaucoup plus courantes. Elles définissent un jour particulier d’une semaine particulière d’un mois particulier pour le passage à l’heure d’été ou à l’heure d’hiver.Much more common are floating adjustment rules, which set a particular day of a particular week of a particular month for the transition to or from daylight saving time. Par exemple, le passage à l’heure d’été qui se produit le troisième dimanche de mars suit une règle d’ajustement flottante.For example, a transition from standard time to daylight saving time that occurs on the third Sunday of March follows a floating adjustment rule.

Pour les fuseaux horaires qui prennent en charge des règles d’ajustement, le passage à l’heure d’hiver et à l’heure d’été crée deux types d’heures anormales : des heures non valides et des heures ambiguës.For time zones that support adjustment rules, the transition to and from daylight saving time creates two kinds of anomalous times: invalid times and ambiguous times. Une heure non valide est une heure inexistante, créée par le passage à l’heure d’été.An invalid time is a nonexistent time created by the transition from standard time to daylight saving time. Par exemple, si ce passage a lieu un jour particulier à 2:00For example, if this transition occurs on a particular day at 2:00 A.M. et fait que l’heure devient 3:00, tout intervalle de temps compris entre 2:00and causes the time to change to 3:00 A.M., each time interval between 2:00 A.M. et 2:59:59and 2:59:99 A.M. est non valide.is invalid. Une heure ambiguë est une heure qui peut correspondre à deux heures différentes dans un même fuseau horaire.An ambiguous time is a time that can be mapped to two different times in a single time zone. Elle est créée par le passage à l’heure d’hiver.It is created by the transition from daylight saving time to standard time. Par exemple, si ce passage a lieu un jour particulier à 2:00For example, if this transition occurs on a particular day at 2:00 A.M. et fait que l’heure devient 1:00, tout intervalle de temps compris entre 1:00and causes the time to change to 1:00 A.M., each time interval between 1:00 A.M. et 1:59:59and 1:59:99 A.M. peut être interprété comme une heure d’hiver ou une heure d’été.can be interpreted as either a standard time or a daylight saving time.

Terminologie de fuseau horaireTime zone terminology

Le tableau suivant définit les termes couramment utilisés lors de l’utilisation de fuseaux horaires et du développement d’applications prenant en charge les fuseaux horaires.The following table defines terms commonly used when working with time zones and developing time zone-aware applications.

TermeTerm DéfinitionDefinition
Règle d’ajustementAdjustment rule Règle qui définit les dates de passage à l’heure d’été et de retour à l’heure d’hiver.A rule that defines when the transition from standard time to daylight saving time and back from daylight saving time to standard time occurs. Chaque règle d’ajustement comporte une date de début et de fin qui définit quand la règle est en place (par exemple, la règle d’ajustement est en place dès le 1er janvier 1986, au 31 décembre 2006), un delta (la quantité de temps par laquelle l’heure d’hiver change suite à l’application de th règle d’ajustement e) et des informations sur la date et heure spécifiques situés après les transitions se produisent pendant la période d’ajustement.Each adjustment rule has a start and end date that defines when the rule is in place (for example, the adjustment rule is in place from January 1, 1986, to December 31, 2006), a delta (the amount of time by which the standard time changes as a result of the application of the adjustment rule), and information about the specific date and time that the transitions are to occur during the adjustment period. Les transitions peuvent suivre une règle fixe ou une règle flottante.Transitions can follow either a fixed rule or a floating rule.
Heure ambiguëAmbiguous time Heure qui peut correspondre à deux heures différentes dans un même fuseau horaire.A time that can be mapped to two different times in a single time zone. Cela se produit lorsque l’heure de l’horloge est retardée, comme lors du passage à l’heure d’hiver dans un fuseau horaire.It occurs when the clock time is adjusted back in time, such as during the transition from a time zone's daylight saving time to its standard time. Par exemple, si ce passage a lieu un jour particulier à 2:00For example, if this transition occurs on a particular day at 2:00 A.M. et fait que l’heure devient 1:00, tout intervalle de temps compris entre 1:00and causes the time to change to 1:00 A.M., each time interval between 1:00 A.M. et 1:59:59and 1:59:99 A.M. peut être interprété comme une heure d’hiver ou une heure d’été.can be interpreted as either a standard time or a daylight saving time.
Règle fixeFixed rule Règle d’ajustement qui définit une date particulière pour le passage à l’heure d’été ou à l’heure d’hiver.An adjustment rule that sets a particular date for the transition to or from daylight saving time. Par exemple, le passage à l’heure d’hiver qui se produit chaque année le 25 octobre suit une règle d’ajustement fixe.For example, a transition from daylight saving time to standard time that occurs each year on October 25 follows a fixed adjustment rule.
Règle flottanteFloating rule Règle d’ajustement qui définit un jour particulier d’une semaine particulière d’un mois particulier pour le passage à l’heure d’été ou à l’heure d’hiver.An adjustment rule that sets a particular day of a particular week of a particular month for the transition to or from daylight saving time. Par exemple, le passage à l’heure d’été qui se produit le troisième dimanche de mars suit une règle d’ajustement flottante.For example, a transition from standard time to daylight saving time that occurs on the third Sunday of March follows a floating adjustment rule.
Heure non valideInvalid time Heure inexistante, créée par le passage à l’heure d’été.A nonexistent time that is an artifact of the transition from standard time to daylight saving time. Elle intervient lorsque l’heure est avancée, par exemple lors du passage de l’heure d’hiver d’un fuseau horaire à son heure d’été.It occurs when the clock time is adjusted forward in time, such as during the transition from a time zone's standard time to its daylight saving time. Par exemple, si ce passage a lieu un jour particulier à 2:00For example, if this transition occurs on a particular day at 2:00 A.M. et fait que l’heure devient 3:00, tout intervalle de temps compris entre 2:00and causes the time to change to 3:00 A.M., each time interval between 2:00 A.M. et 2:59:59and 2:59:99 A.M. est non valide.is invalid.
Durée de transitionTransition time Informations sur un changement d’heure spécifique, tel que le passage de l’heure d’été à l’heure d’hiver, ou vice versa, dans un fuseau horaire particulier.Information about a specific time change, such as the change from daylight saving time to standard time or vice versa, in a particular time zone.

Fuseaux horaires et classe TimeZoneInfoTime zones and the TimeZoneInfo class

Dans .NET, un TimeZoneInfo objet représente un fuseau horaire.In .NET, a TimeZoneInfo object represents a time zone. Le TimeZoneInfo classe inclut un GetAdjustmentRules méthode qui retourne un tableau de TimeZoneInfo.AdjustmentRule objets.The TimeZoneInfo class includes a GetAdjustmentRules method that returns an array of TimeZoneInfo.AdjustmentRule objects. Chaque élément de ce tableau fournit des informations sur la transition vers et depuis l’heure pour une période donnée.Each element of this array provides information about the transition to and from daylight saving time for a particular time period. (Pour les fuseaux horaires qui ne prennent pas en charge l’heure d’été, la méthode retourne un tableau vide.) Chaque TimeZoneInfo.AdjustmentRule objet possède un DaylightTransitionStart et un DaylightTransitionEnd propriété qui définit la date et heure particulière de la transition vers et à partir de l’heure d’été.(For time zones that do not support daylight saving time, the method returns an empty array.) Each TimeZoneInfo.AdjustmentRule object has a DaylightTransitionStart and a DaylightTransitionEnd property that defines the particular date and time of the transition to and from daylight saving time. Le IsFixedDateRule propriété indique si cette transition est fixe ou flottante.The IsFixedDateRule property indicates whether that transition is fixed or floating.

.NET s’appuie sur les informations de fuseau horaire fournies par le système d’exploitation Windows et stockées dans le Registre..NET relies on time zone information provided by the Windows operating system and stored in the registry. En raison du nombre de fuseaux horaires de la terre, pas tous les fuseaux horaires existants sont représentées dans le Registre.Due to the number of the earth's time zones, not all existing time zones are represented in the registry. En outre, étant donné que le Registre est une structure dynamique, les fuseaux horaires prédéfinis peuvent ajoutés à ou supprimés à partir de celui-ci.In addition, because the registry is a dynamic structure, predefined time zones can be added to or removed from it. Enfin, le Registre ne contient pas nécessairement des données de fuseau horaire historiques.Finally, the registry does not necessarily contain historic time zone data. Par exemple, dans Windows XP, le Registre contient les données sur un seul ensemble d’ajustements de fuseau horaire.For example, in Windows XP the registry contains data about only a single set of time zone adjustments. Windows Vista prend en charge les données de fuseau horaire dynamiques, ce qui signifie qu’un même fuseau horaire peut avoir plusieurs règles d’ajustement qui s’appliquent à des intervalles spécifiques d’années.Windows Vista supports dynamic time zone data, which means that a single time zone can have multiple adjustment rules that apply to specific intervals of years. Toutefois, la plupart des fuseaux horaires définis dans le Windows Vista du Registre et la prise en charge l’heure d’été ont seulement une ou deux règles d’ajustement prédéfinies.However, most time zones that are defined in the Windows Vista registry and support daylight saving time have only one or two predefined adjustment rules.

La dépendance de la TimeZoneInfo classe sur le Registre signifie qu’une application prenant en charge de fuseau horaire ne peut pas être sûr qu’un fuseau horaire particulier est défini dans le Registre.The dependence of the TimeZoneInfo class on the registry means that a time zone-aware application cannot be certain that a particular time zone is defined in the registry. Par conséquent, la tentative d’instancier un fuseau horaire spécifique (autre que le fuseau horaire local ou le fuseau horaire qui représente l’heure UTC) doit utiliser la gestion des exceptions.As a result, the attempt to instantiate a specific time zone (other than the local time zone or the time zone that represents UTC) should use exception handling. Elle doit également fournir une méthode permettant l’application de continuer si obligatoire TimeZoneInfo objet ne peut pas être instancié à partir du Registre.It should also provide some method of letting the application to continue if a required TimeZoneInfo object cannot be instantiated from the registry.

Pour gérer l’absence d’un fuseau horaire requis, la TimeZoneInfo classe inclut un CreateCustomTimeZone (méthode), que vous pouvez utiliser pour créer des fuseaux horaires personnalisés qui ne figurent pas dans le Registre.To handle the absence of a required time zone, the TimeZoneInfo class includes a CreateCustomTimeZone method, which you can use to create custom time zones that are not found in the registry. Pour plus d’informations sur la création d’un fuseau horaire personnalisé, consultez Comment : Créer des fuseaux horaires sans règles d’ajustement et Comment : Créer des fuseaux horaires avec des règles d’ajustement.For details on creating a custom time zone, see How to: Create time zones without adjustment rules and How to: Create time zones with adjustment rules. En outre, vous pouvez utiliser la ToSerializedString méthode pour convertir un nouveau fuseau horaire en une chaîne et l’enregistrer dans un magasin de données (par exemple, une base de données, un fichier texte, le Registre ou une ressource d’application).In addition, you can use the ToSerializedString method to convert a newly created time zone to a string and save it in a data store (such as a database, a text file, the registry, or an application resource). Vous pouvez ensuite utiliser le FromSerializedString méthode pour convertir cette chaîne de sauvegarde à un TimeZoneInfo objet.You can then use the FromSerializedString method to convert this string back to a TimeZoneInfo object. Pour plus d’informations, consultez Guide pratique pour Enregistrer des fuseaux horaires dans une ressource incorporée et Comment : Restaurer des fuseaux horaires dans une ressource incorporée.For details, see How to: Save time zones to an embedded resource and How to: Restore time zones from an embedded resource.

Étant donné que chaque fuseau horaire est caractérisé par un décalage de base par rapport à l’heure UTC, ainsi que par un décalage par rapport à l’heure UTC qui reflète toutes les règles d’ajustement existantes, une heure dans un fuseau horaire peut être facilement convertie en une heure dans un autre fuseau horaire.Because each time zone is characterized by a base offset from UTC, as well as by an offset from UTC that reflects any existing adjustment rules, a time in one time zone can be easily converted to the time in another time zone. À cet effet, le TimeZoneInfo objet inclut plusieurs méthodes de conversion, y compris :For this purpose, the TimeZoneInfo object includes several conversion methods, including:

  • ConvertTimeFromUtc, qui convertit l’heure UTC en heure d’un fuseau horaire désigné.ConvertTimeFromUtc, which converts UTC to the time in a designated time zone.

  • ConvertTimeToUtc, qui convertit l’heure dans un fuseau horaire désigné au format UTC.ConvertTimeToUtc, which converts the time in a designated time zone to UTC.

  • ConvertTime, qui convertit l’heure dans un fuseau horaire désigné à l’heure dans un autre fuseau horaire désigné.ConvertTime, which converts the time in one designated time zone to the time in another designated time zone.

  • ConvertTimeBySystemTimeZoneId, qui utilise des identificateurs de fuseau horaire (au lieu de TimeZoneInfo objets) en tant que paramètres pour régler l’heure dans un fuseau horaire désigné à l’heure dans un autre fuseau horaire désigné.ConvertTimeBySystemTimeZoneId, which uses time zone identifiers (instead of TimeZoneInfo objects) as parameters to convert the time in one designated time zone to the time in another designated time zone.

Pour plus d’informations sur la conversion d’heures entre fuseaux horaires, consultez Conversion d’heures entre fuseaux horaires.For details on converting times between time zones, see Converting times between time zones.

Voir aussiSee also