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
Libérer: 2025-01-26 04:31:08
original
288 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal