Maison >développement back-end >C++ >Comment puis-je créer des DateTimes avec des fuseaux horaires spécifiques en C #?

Comment puis-je créer des DateTimes avec des fuseaux horaires spécifiques en C #?

Susan Sarandon
Susan Sarandonoriginal
2025-01-26 04:31:08328parcourir

How Can I Create DateTimes with Specific Time Zones in C#?

Travailler avec DateTimes et des fuseaux horaires en C #

De nombreuses tâches de programmation, en particulier dans les tests, exigent la création d'objets DateTime liés à des fuseaux horaires spécifiques. Alors que le constructeur DateTime gère les temps locaux, UTC et non spécifiés, l'utilisation TimeZoneInfo offre un contrôle plus précis.

Tiration de tirzoneinfo

Au lieu de compter uniquement sur la propriété DateTime du constructeur TimeZone, TimeZoneInfo fournit des capacités de gestion de fuseau horaire et de conversion supérieures.

Structure de DateTime personnalisée

Cet exemple utilise une structure personnalisée, DateTimeWithZone, pour encapsuler un DateTime et son fuseau horaire associé:

<code class="language-csharp">public struct DateTimeWithZone
{
    private readonly DateTime utcDateTime;
    private readonly TimeZoneInfo timeZone;

    public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone)
    {
        var dateTimeUnspec = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified);
        utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTimeUnspec, timeZone);
        this.timeZone = timeZone;
    }

    public DateTime UniversalTime => utcDateTime;
    public TimeZoneInfo TimeZone => timeZone;
    public DateTime LocalTime => TimeZoneInfo.ConvertTime(utcDateTime, timeZone);
}</code>

Application pratique

pour créer un objet DateTimeWithZone dans la zone du temps standard du Pacifique (PST):

<code class="language-csharp">var pstDateTime = new DateTimeWithZone(new DateTime(2023, 1, 1), TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));</code>

Cette approche permet un travail transparent avec des objets DateTime dans des fuseaux horaires spécifiques, facilitant les conversions entre UTC et l'heure locale comme requis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn