Maison > développement back-end > C++ > Comment créer un objet DateTime dans un fuseau horaire spécifique (par exemple, PST) en C # sans utiliser local ou UTC?

Comment créer un objet DateTime dans un fuseau horaire spécifique (par exemple, PST) en C # sans utiliser local ou UTC?

Barbara Streisand
Libérer: 2025-01-26 04:16:14
original
144 Les gens l'ont consulté

How to Create a DateTime Object in a Specific Time Zone (e.g., PST) in C# Without Using Local or UTC?

Créer un objet DateTime avec un fuseau horaire spécifique en C#

Lorsque vous effectuez des tests unitaires impliquant des changements de fuseau horaire, vous devez être capable de créer des objets DateTime dans un fuseau horaire non local spécifique.

Question :

Comment créer un objet DateTime avec un fuseau horaire spécifique (tel que PST) sans s'appuyer sur le fuseau horaire local ou le fuseau horaire UTC ?

Réponse :

Le constructeur DateTime autorise uniquement le fuseau horaire local, le fuseau horaire UTC ou des options non spécifiées. Par conséquent, nous pouvons utiliser TimeZoneInfo.

Solution :

Pour pouvoir créer des objets DateTime avec un fuseau horaire spécifique (par exemple PST), pensez à implémenter une structure personnalisée :

<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

Cette structure permet de créer un objet DateTime avec un fuseau horaire spécifique et d'accéder à son heure UTC et son heure locale. Simplifiez votre code à l'aide des propriétés du corps d'expression.

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