Dates, heures et fuseaux horaires

En plus de la structure DateTime élémentaire, .NET fournit les classes suivantes qui prennent en charge l’utilisation des fuseaux horaires :

  • TimeZone

    Utilisez cette classe pour travailler avec le fuseau horaire local du système et le fuseau horaire UTC. La fonctionnalité de la TimeZone classe est largement remplacée par la TimeZoneInfo classe.

  • TimeZoneInfo

    Utilisez cette classe pour travailler avec tout fuseau horaire prédéfini sur un système, créer des fuseaux horaires et convertir facilement des dates et des heures d'un fuseau horaire à un autre. Pour tout nouveau développement, utilisez la classe TimeZoneInfo plutôt que la classe TimeZone.

  • DateTimeOffset

    Utilisez cette structure pour travailler avec des dates et heures dont le décalage (ou différence) par rapport à l'heure UTC est connu. La structure DateTimeOffset associe une valeur de date et d’heure au décalage de cette heure par rapport à l’heure UTC. En raison de sa relation avec l’heure UTC, une valeur individuelle de date et d’heure identifie de façon univoque un point unique dans le temps. Cela rend une valeur DateTimeOffset plus portable d’un ordinateur à un autre par rapport à une valeur DateTime.

À compter de .NET 6, les types suivants sont disponibles :

  • DateOnly

    Utilisez cette structure lors de l’utilisation d’une valeur qui représente uniquement une date. La date représente la journée entière, du début du jour à la fin. DateOnly a une plage de jusqu’à 0001-01-019999-12-31. Et ce type représente la combinaison mois, jour et année sans heure spécifique. Si vous avez précédemment utilisé un DateTime type dans votre code pour représenter une date qui n’a pas tenu compte de l’heure, utilisez ce type à sa place.

  • TimeOnly

    Utilisez cette structure pour représenter une heure sans date. L’heure représente les heures, les minutes et les secondes d’un jour non spécifique. TimeOnly a une plage de 00:00:00.0000000 à 23:59:59.9999999. Ce type peut être utilisé pour remplacer et TimeSpan taper DateTime dans votre code lorsque vous avez utilisé ces types pour représenter une heure.

La section suivante fournit les informations dont vous avez besoin pour travailler avec des fuseaux horaires et pour créer des applications prenant en charge les fuseaux horaires qui peuvent convertir des dates et des heures d’un fuseau horaire à un autre.

Contenu de cette section

Vue d’ensemble des fuseaux horaires
Décrit la terminologie, les concepts et les problèmes impliqués dans la création d’applications prenant en charge les fuseaux horaires.

Choix entre DateTime, DateTimeOffset, TimeSpan et TimeZoneInfo
Décrit quand utiliser les DateTimedonnées de DateTimeOffsetdate et d’heure, et TimeZoneInfo les types lors de l’utilisation des données de date et d’heure.

Recherche des fuseaux horaires définis sur un système local
Décrit comment énumérer les fuseaux horaires trouvés sur un système local.

Procédure : énumérer les fuseaux horaires d’un ordinateur
Fournit des exemples qui énumèrent les fuseaux horaires définis dans le Registre d’un ordinateur et qui permettent aux utilisateurs de sélectionner un fuseau horaire prédéfini dans une liste.

Guide pratique pour accéder aux objets UTC et de fuseau horaire local prédéfinis
Décrit comment accéder au temps universel coordonné et au fuseau horaire local.

Procédure : instancier un objet TimeZoneInfo
Décrit comment instancier un TimeZoneInfo objet à partir du registre système local.

Instanciation d’un objet DateTimeOffset
Décrit les façons dont un DateTimeOffset objet peut être instancié et les façons dont une DateTime valeur peut être convertie en valeur DateTimeOffset .

Guide pratique pour créer des fuseaux horaires sans règles d’ajustement
Explique comment créer un fuseau horaire personnalisé qui ne prend pas en charge la transition vers et à partir de l’heure d’été.

Guide pratique pour créer des fuseaux horaires avec des règles d’ajustement
Explique comment créer un fuseau horaire personnalisé qui prend en charge une ou plusieurs transitions vers et à partir de l’heure d’été.

Enregistrement et restauration de fuseaux horaires
Décrit TimeZoneInfo la prise en charge de la sérialisation et de la désérialisation des données de fuseau horaire et illustre certains des scénarios dans lesquels ces fonctionnalités peuvent être utilisées.

Guide pratique pour économiser des fuseaux horaires dans une ressource incorporée
Explique comment créer un fuseau horaire personnalisé et enregistrer ses informations dans un fichier de ressources.

Guide pratique pour restaurer des fuseaux horaires à partir d’une ressource incorporée
Explique comment instancier des fuseaux horaires personnalisés qui ont été enregistrés dans un fichier de ressources incorporées.

Exécution d’opérations arithmétiques avec des dates et des heures
Traite des problèmes liés à l’ajout, à la soustraction et à la comparaison DateTime et DateTimeOffset aux valeurs.

Procédure : utiliser des fuseaux horaires en arithmétique de date et heure
Explique comment effectuer des opérations arithmétiques de date et d’heure qui reflètent les règles d’ajustement d’un fuseau horaire.

Conversion entre DateTime et DateTimeOffset
Décrit comment convertir entre et DateTimeOffset valeursDateTime.

Conversion des heures entre les fuseaux horaires
Décrit comment convertir les heures d'un fuseau horaire dans un autre fuseau horaire.

Guide pratique pour résoudre les heures ambiguës
Décrit comment résoudre une heure ambiguë en la mappant sur l’heure d’hiver du fuseau horaire.

Guide pratique pour permettre aux utilisateurs de résoudre les heures ambiguës
Décrit comment permettre à un utilisateur de déterminer le mappage entre une heure locale ambiguë et le temps universel coordonné.

Informations de référence

System.TimeZoneInfo